Используя Vim, как я могу установить статусную линию для выравнивания вправо? - PullRequest
11 голосов
/ 01 декабря 2010

My ~/.vimrc использует следующую настройку строки состояния

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

Все выровнено.help 'statusline' говорит, что символ - используется для «выравнивания элемента по левому краю. Значение по умолчанию выравнивается по правому краю, когда значение minwid превышает длину элемента.»

Однако я не смогиспользовать (или не использовать) -, чтобы когда-либо выравнивать предметы по правому краю.

Что является примером того, что одна группа элементов выровнена по левому краю, а одна группа выровнена по правому краю?

I 'Мы также пытались использовать =, но он просто печатает знак =.

Ответы [ 3 ]

12 голосов
/ 01 декабря 2010

Вам необходимо поставить префикс = со знаком процента: %=.

Используя ваш пример:

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%%
4 голосов
/ 01 декабря 2010

Вы должны использовать %=

То, что слева от %= будет выровнено влево, а то, что справа от %= будет выровнено по правому краю.Например, вот строка состояния, которую я использую.

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

1 голос
/ 09 июля 2011

Согласен с Ксавье Т .

с использованием %=, что означает выравнивание по правому краю следующих элементов

Следующий мой vimrc

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...