来看看如何自定义状态栏显示.
Statusline 是 Vim 的一个 option, 可通过:
:set statusline? |
查看当前的 statusline 配置.
当然, 我们也可以自定义状态栏的显示内容.
打开一个Markdown 文件, 命令行模式下, 输入:
%y |
会看到状态栏显示如下类似内容:
foo.md - FileType: [markdown] |
这里的 %f
表示当前文件的相对路径, %y
表示文件的类型.
statusline 的设置, 有些类似 C 里面的 printf.
它的通用格式如下:
%-0{minwid}.{maxwid}{item} |
其中, 除了%
和 {item}
, 其他都是可选的. 而 minwd, maxwid 分别指的是最小和最大宽度.
看几个简单的例子就清楚了.
显示行号:
%4l\ Total:\ %4L |
会看到状态栏显示如下类似内容:
Current: 9 Total: 66 |
这里设置了最短长度4, 默认用空格来补全.
可以设置为用0来补全:
%04l\ Total:\ %04L |
状态栏显示如下:
Current: 0009 Total: 0066 |
再比如, 显示文件的绝对路径:
:set statusline=%.20F |
此处, 最大宽度设置为20, 状态栏显示如下:
<-on-buffer-local.md |
通过 :h statusline
, 可以查看所有可用的 item 及其对应含义.
此外, 如果 statusline 是以 %!
开头, 比如 :set statusline=%!MyStatusLine()
, 则表示MyStatusLine()
是个表达式, 这个表达式的结果才是 statusline 对应的值.
如果你安装了airline, 命令模式输入:
:set statusline? |
会看到输出结果:
statusline=%!airline#statusline(1) |
这里就是使用了%!
.
书中还介绍了%=
, 用于对齐, 这里就略过了.
OK, 本节结束, 我去吃点好吃的奖励下自己还没弃坑😋