Как показать текущий столбец в строке состояния в vim?


188

Я хотел бы показать текущий столбец в строке состояния, как это принято во многих других текстовых редакторах. Например, это хорошо знать, если вы находитесь около столбца 80 или выше.

Как показать текущий столбец в строке состояния?


Если вы хотите показать текущий столбец курсора, введите: echo col ('.').
SibiCoder

Ответы:


219

Попробуйте, если вам нужна настройка «правитель». На моем компьютере в правом нижнем углу отображаются строка и столбец, где у меня есть курсор.

:set ruler

РЕДАКТИРОВАТЬ В КОММЕНТАРИИ :

С помощью vim (команды :help ruler):

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

Вы можете попробовать изменить его с помощью rulerformatопции, например,:set rulerformat=%l,%v


Да вроде. Но это показывает странное значение, например, где 23,62-6823, кажется, линия. Как мне интерпретировать 62-68колонку?
Джонас

7
62 считает вкладки как один символ, 68 считает расширенные вкладки
RedGrittyBrick

1
Из команды «: help ruler»: «Если отображаемое количество символов отличается от количества байтов в тексте (например, для табуляции или многобайтового символа), то и текстовый столбец (номер байта), и экран столбец показаны, разделены чертой. " Вы можете попробовать изменить его с помощью опции 'rulerformat', например ': set rulerformat =% l,% v'
Birei

rulerне работает с разделенными окнами в Vim.
Михай

@Jonas Не только вкладки, как сказал RedGrittyBrick, но также символы и байты. Это очень очевидно в файлах UTF-8, где односимвольный глиф имеет многобайтовую кодовую точку. Например, латинский eñe (n с тильдой над ним, произносится EN-yea) представляет собой односимвольный глиф, но для представления точки кода (\ xC3B1) требуется два байта, а одна треть (1/3) представляет собой односимвольный глиф с трехбайтовой кодовой точкой (\ xE28593).
Luv2code

27

Смотрите :help statuslineдля многих доступных вариантов.

У меня есть это ~/.vimrcмежду моими другими директивами:

set statusline+=col:\ %c,

какие выводы

col: 64

в моем статуслине.

Я не имею set ruler.


1
Это не работает для меня. Мне, вероятно, нужно больше настроек.
Джонас

3
Jonas, вам, возможно, придется использовать set laststatus=2в вашем, .vimrcчтобы всегда отображать строку состояния. (0 -> никогда не отображать строку состояния, 1 -> только при наличии хотя бы двух окон, 2 -> всегда отображать строку состояния).
pabuisson

Я использовал следующее, чтобы освободить место перед этим и предыдущим материалом в строке состояния: установите строку состояния + = \ col: \% c,
David Baucum

18

Еще один способ сделать это - «Ctrl-G», который печатает текущую позицию курсора пятью способами: столбец, строка, слово, символ и байт. (из http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )


В этом решении есть что-то аккуратное, что отличает Column и VisibleColumn. Непечатные символы отображаются в 2 столбцах, но должны учитываться как один. Если значение не печатаемые символы , результат выглядит следующим образом : RealColumn-VisibleColumn, Line, Word, Character and Byte.
mxlian

17

Или оставьте «линейку» неустановленной, выигрыш в производительности и нажмите CTRL-G, когда вы хотите увидеть текущий столбец.


3
Нажатие Ctrl-Anything не похоже на увеличение производительности. Мы печатаем символы. Ни у одного человека нет пальцев и глаз, которые летят достаточно быстро, чтобы увидеть разницу в производительности.
macetw

10

Я бы не рекомендовал использовать set ruler, потому что считаю, что он несовместим с параметрами строки состояния, например, если вы устанавливаете строку состояния для отображения полного пути к файлу в сочетании с set ruler

set statusline+=%F

set ruler

Тогда он НЕ отображает номер столбца, а только полный путь к файлу в строке состояния. Однако, если вы положите следующее в ваш .vimrc

set statusline+=%F\ %l\:%c

Он будет отображать все правильно, а именно

[Путь к файлу / имя файла] [белье]: [номер столбца]


2

Для остальных людей, которые ищут этот ответ и не привыкли работать с VIm, лично я нашел самый простой ответ - добавить эту строку в конец вашего файла .vimrc в вашем домашнем каталоге:

set ruler

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.