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

时间:2010-12-01 07:07:19

标签: vim

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

set statusline=%F%m%r%h%w\ %{&ff}\ %Y\ [0x\%02.2B]\ %l/%L,%v\ %p%%

一切都保持一致。 help 'statusline'表示-字符用于“左对齐项目。当minwid大于项目的长度时,默认为右对齐。”

但是,我无法使用(或不使用)-来使事情向右对齐。

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

我也尝试使用=,但它只打印=符号。

3 个答案:

答案 0 :(得分:12)

您需要在=前加上百分号:%=

使用您的示例:

set statusline=%F%m%r%h%w\ %{&ff}\ %Y\ [0x\%02.2B]\ %=l/%L,%v\ %p%%

将右对齐“%l/%L,%v\ %p%%”组。您还应该在适当的位置使用%<强制截断,以适应狭窄的窗口:

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

答案 1 :(得分:4)

您必须使用%=

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

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

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

答案 2 :(得分:1)

同意Xavier T

使用%=,这意味着对齐以下项目

以下是我的vimrc

set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}][TYPE=%Y][ASCII=\%03.3b][HEX=\%02.2B]%=[POS=%04l,%04v][%p%%][LEN=%L]