我的状态行看起来像这样:
set statusline+=%m
set statusline+=b%n:
" set statusline+=%f
set statusline+=%F
set statusline+=%R
set statusline+=%Y
set statusline+=\
set statusline+=[
set statusline+=row\ %l/%L
set statusline+=,\
" set statusline+=column\ %c\ (%v)
set statusline+=column\ %v\ (%c)
set statusline+=]
在平常没有云的日子里,结果如下:
[-]b3:options.txt,RO,HELP [row 6291/7778, column 42 (29)]
现在,当我开始分割窗口并打开不同的文件时,其中一些文件已修改,有些则没有,状态行中的内容开始来回摆动,这让我很烦恼。
我在 vim 的帮助中看到(:help '状态行),可以设置某些项目的固定宽度。
您将如何修复上述项目,以便如果一个项目丢失,或者无论其宽度如何,都不会影响其他项目?(即,这样我总是可以看到一个已知的位置并知道那里有什么......而不是左右移动我的眼睛寻找我需要的东西)。
答案1
%=允许您分割左对齐和右对齐。
我在状态行中使用它,当前 git 分支左对齐,文件信息右对齐。即使没有可用的 git 信息,其他所有内容也完全保持在右侧。
编辑:我应该说我使用 %= 以这种方式修复项目,因为我无法以其他方式工作。您可以使用以下方式设置最小宽度%-10.f(对于某些项目 f,最小宽度为 10)。
编辑2:回答下面 Idigas 的评论。这是您当前的状态行(重新格式化以节省空间):
set statusline=%mb:%n\ %f%R%Y\ [row\ %l/%L,\ column\ %v\ (%c)]
我会将其改为:
set statusline=b:%n\ %f%R%Y%=%m[row\ %l/%L,\ column\ %v\ (%c)]
通过设置左/右分割%=并移动修改后的%米在它之后,状态行的位置似乎是固定的。