JSRUN 用代码说话

状态条

编辑教程

状态条

Vim允许自定义每个窗口底部的状态条显示的文字,你可以通过设置statusline选项来进行自定义。执行下面的命令:

:set statusline=%f

你可以在状态条上看到当前所编辑文件的路径(相对于当前路径)。再执行这个命令:

:set statusline=%f\ -\ FileType:\ %y

现在你可以在状态条中看到类似foo.markdown - FileType: [markdown]这样的文字。

如果你熟悉C语言中的printf或者Python的字符串插值,那么这个选项的格式看起来会比较眼熟。如果不熟悉,你只需要记住以%开头的字符串会被展开为不同的文字,这取决于%后面的字符。在上面的示例中,%f会被替换为文件名,%y会被替换为文件类型。

注意状态条中的空格需要反斜线进行转义,这是因为set可以同时设置多个选项,这些选项会用空格分隔,我们在第二章讲过这个。

状态条设置可以很快变得非常复杂,不过有一个更好的办法来设置它们以至于让它们看起来更清晰。执行下面的命令:

:set statusline=%f         " 文件的路径
:set statusline+=\ -\      " 分隔符
:set statusline+=FileType: " 标签
:set statusline+=%y        " 文件的类型

第一个命令使用=来设置状态条只显示文件名,从而将之前的所有会在状态条中显示的值都屏蔽掉。之后再使用+=逐渐添加其他要显示的内容,一次添加一条。同时还使用注释来说明每一条所表示的含义以方便其他的人阅读我们的代码(也会方便我们自己以后阅读)。

执行下面的命令:

:set statusline=%l    " 当前行号
:set statusline+=/    " 分隔符
:set statusline+=%L   " 总行数

现在状态条只包含当前所在行以及文件的总行数,并且显示成12/223这个样子。

宽度和边距

可以在%后面添加额外的字符来改变状态条中信息的显示样式。执行下面的命令:

:set statusline=[%4l]

现在状态条中的文件行数会至少显示为4个字符的宽度(例如:[ 12]),这可以用于防止状态条中的文字总是令人厌烦地跳来跳去。

默认情况下在值的左边添加边距。执行下面的命令:

:set statusline=Current:\ %4l\ Total:\ %4L

你的状态条看来会是这个样子:

Current:   12 Total:  223

你可以使用-将边距添加在右边,而不是左边。执行下面的命令:

:set statusline=Current:\ %-4l\ Total:\ %-4L

现在你的状态条看起来会是这个样子:

Current: 12   Total: 223

这样就好看多了,因为数字值是紧挨着它的标签的。

对于会被显示为数字的代码,你可以让Vim使用0代替空格来填充边距。执行下面的命令:

:set statusline=%04l

现在当光标位于第12行的时候你的状态条会显示0012。

最后,你可以设置一个代码所要输出的值的最大宽度。执行下面命令:

:set statusline=%F

%F会显示当前文件的完整路径。现在执行下面的命令改变最大宽度:

:set statusline=%.20F

如果有必要路径会被删简,像下面这样:

<hapters/17.markdown

这可以用于防止路径或者是其他的很长的代码占用整个行。

通用格式

阅读:help statusline查看状态条中代码的通用格式:

%-0{minwid}.{maxwid}{item}

除了%和item外其他都是可选的。

分割

我们不会探讨状态条的更多细节(Vim的文档有非常详细的说明,如果你想学到更多,建议阅读它们),不过我们会介绍一个简单的代码,这个代码可以立即带来价值。执行下面的命令:

:set statusline=%f         " 文件的路径
:set statusline+=%=        " 切换到右边
:set statusline+=%l        " 当前行
:set statusline+=/         " 分隔符
:set statusline+=%L        " 总行数

现在状态条的左边会包含文件的路径,当前行/总行数会显示在状态条的右边。%=这个代码告诉Vim所有在此之后要在状态条上显示的信息都应该右对齐(作为一个整体),而不是左对齐。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟