Показать текущий столбец в строке состояния
Как отобразить текущий столбец в строке состояния?
Прочитав :h statusline
я нашел %c
что выглядит многообещающе, но учитывает байты, а не символы. Я бы хотел, чтобы столбец был разделен символами, а не байтами. %v
работает, если никакие вкладки не используются. Вот пример:
123 56789
“äå µåäö”
^ this is a tab
Я хотел бы отобразить номер, указанный в первом ряду. Следующее работает для первого-третьего столбца, пока вкладка не вступит в игру.
:set statusline=%v
Следующее работает только для первой строки, но не для второй.
:set statusline=%c
Учитывая вышеупомянутый пример vim отображает 5
если курсор находится на цифре пять в первой строке, что я и хочу. Если я перейду вниз на одну строку, чтобы курсор был расположен на µ
Я хотел бы показать 5
также, %c
дисплеи 9
а также %v
зависит от стоимости tabstop
,
1 ответ
Я думаю, что вы должны использовать выражение в 'statusline'
опция: %{<exp>}
, Поэтому возьмите строку, обрежьте ее до столбца курсора, замените все символы 1-байтовым символом и посчитайте длину строки:
:let &stl = "%{strlen(substitute(strpart(getline('.'), 0, col('.')), '.', 'x', 'g'))}"