4

Моя строка состояния выглядит примерно так:

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 (строка справки) я увидел, что можно установить фиксированную ширину некоторых элементов.

Как бы вы исправили вышеперечисленные элементы таким образом, чтобы, если один элемент отсутствовал или не имел значения по ширине, он не влиял на другие? (то есть, чтобы я всегда мог посмотреть на известную позицию и узнать, что там есть ... не двигать глазами влево и вправо в поисках того, что мне нужно).

1 ответ1

6

% = позволяет разделить выравнивание по левому и правому краям.

Я использую это в моей строке состояния, где моя текущая ветка git выровнена по левому краю, а информация о файле выровнена по правому краю. Даже если нет доступной информации о git, все остальное остается полностью справа.

редактировать: я должен сказать, что я использую% =, чтобы исправить элементы таким образом, потому что у меня были проблемы с установкой его работы любым другим способом. Вы можете установить минимальную ширину, используя % -10.f (с 10 минимальная ширина для некоторого элемента f).

редактировать 2: Чтобы ответить на комментарий Идигаса ниже. Вот ваша текущая строка состояния (переформатированная для пробела):

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

Устанавливая разделение влево / вправо с помощью % = и перемещая измененный % m после него, позиции строки состояния кажутся фиксированными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .