修复 vim 状态行中项目的位置

修复 vim 状态行中项目的位置

我的状态行看起来像这样:

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)]

通过设置左/右分割%=并移动修改后的%米在它之后,状态行的位置似乎是固定的。

相关内容