使用Vim,我如何'设置状态线'以对齐?

Rob*_*ert 11 vim

~/.vimrc使用以下状态行设置

set statusline=%F%m%r%h%w\ %{&ff}\ %Y\ [0x\%02.2B]\ %l/%L,%v\ %p%%
Run Code Online (Sandbox Code Playgroud)

一切都保持一致.help 'statusline'说该-字符用于"左对齐项目.当minwid大于项目的长度时,默认是正确的."

但是,我无法使用(或不使用)-将事物对齐.

让一组物品左对齐而一组右对齐的例子是什么?

我也试过用=它,但它只打印=标志.

Jee*_*eet 12

你需要=用百分号作为前缀:%=.

使用你的例子:

set statusline=%F%m%r%h%w\ %{&ff}\ %Y\ [0x\%02.2B]\ %=l/%L,%v\ %p%%
Run Code Online (Sandbox Code Playgroud)

将右对齐" %l/%L,%v\ %p%%"组.您还应该%<在适当的位置使用截断来适应狭窄的窗口:

set statusline=%F%m%r%h%w%<\ %{&ff}\ %Y\ [0x\%02.2B]\ %=l/%L,%v\ %p%%
Run Code Online (Sandbox Code Playgroud)

  • `%=%l`因为我想要当前的行号 (2认同)

Xav*_* T. 5

你必须使用%=

左边的内容%=将左对齐,右边的内容%=将右对齐。

例如,这是我使用的状态栏。

set statusline=%f%m%r%h\ [%L]\ [%{&ff}]\ %y%=[%p%%]\ [line:%05l,col:%02v]