Vim: Как работает строка состояния "%V"?
Вот вопрос Vim, на который я не смог найти ответ. Что это %V
переменную statusline делать?
Я проверил документацию, которую смог найти, но она не совсем понятна, я знаю, что она показывает виртуальный столбец, но что означают цифры / буквы перед -
имею в виду?
Например, что означает каждое из следующего?
0-1
17-18
и т.д. Из того, что я могу сделать, находя эти примеры. число перед -
последний сплошной столбец, реальный столбец другими словами. Это правильно?
Спасибо за вашу помощь!
1 ответ
В Vim statusline
среди множества флагов, которые вы можете установить, существуют:
%c
- номер столбца, т.е. номер байта.%v
а также%V
- номер виртуального столбца, то есть номер столбца на вашем экране.
Так в чем же разница между фактическим и виртуальным номером столбца? Ответ заключается в том, что при использовании вкладок номер виртуального столбца является приблизительным значением вашего текущего номера столбца, как если бы вы использовали пробелы вместо вкладок.
Пример. Полезная комбинация в строке состояния Vim:
%c%V
Как говорится в справке, флаг%V, который отображает номер виртуального столбца, будет напечатан (с предыдущей чертой), только если он отличается от фактического номера столбца. Таким образом, обычно ваша строка состояния будет показывать только реальный номер столбца (например, 8
), но если вы находитесь в строке с символами табуляции или многобайтовыми символами, вы увидите два числа (например, 1-8
).
Например, попробуйте это:
echo -e "\tHello world." > /tmp/test
Затем откройте /tmp/test
в Vim и обратите внимание на строку состояния, указывающую разницу между реальным и виртуальным столбцами. Если вы измените tabstop
установив другое значение, виртуальный столбец изменится.
Наконец, если вы :set expandtab
и делать :retab
, тогда индикатор виртуального столбца будет скрыт.