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

128521
Jonas

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

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

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

6 ответов на вопрос

192
Birei

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

:set ruler 

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

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

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

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

Да вроде. Но это показывает странное значение, например, `23,62-68`, где 23, кажется, линия. Как мне интерпретировать `62-68` для колонки? Jonas 12 лет назад 0
62 считает вкладки как один символ, 68 считает расширенные вкладки RedGrittyBrick 12 лет назад 7
Из команды «: help ruler»: «Если отображаемое количество символов отличается от количества байтов в тексте (например, для табуляции или многобайтового символа), то и текстовый столбец (номер байта), и экран столбец показаны, разделены чертой. " Вы можете попробовать изменить его с помощью опции 'rulerformat', например ': set rulerformat =% l,% v' Birei 12 лет назад 1
`ruler` не работает с разделенными окнами в Vim. Mihai 8 лет назад 0
@Jonas Не только вкладки, как сказал RedGrittyBrick, но также символы и байты. Это очень очевидно в файлах UTF-8, где односимвольный глиф имеет многобайтовую кодовую точку. Например, латинский eñe (n с тильдой над ним, произносится как EN-yea) представляет собой односимвольный глиф, но для представления кодовой точки требуется два байта, а одна треть (1/3) представляет собой односимвольный глиф с трехбайтовой кодовой точкой (\ xE28593). Luv2code 6 лет назад 0
26
romainl

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

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

set statusline+=col:\ %c, 

какие выводы

col: 64 

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

Я не имею set ruler.

Это не работает для меня. Мне, вероятно, нужно больше настроек. Jonas 12 лет назад 1
Jonas, вам, возможно, придется использовать `` set laststatus = 2`` в вашем `` .vimrc``, чтобы всегда отображать строку состояния. (0 -> никогда не отображать строку состояния, 1 -> только при наличии хотя бы двух окон, 2 -> всегда отображать строку состояния). pabuisson 10 лет назад 3
Я использовал следующее, чтобы освободить место перед этим и предыдущим материалом в строке состояния: установить строку состояния + = \ col: \% c, David Baucum 9 лет назад 0
17
ma11hew28

Or, leave 'ruler' unset, a performance gain, and press CTRL-G when you want to see the current column.

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

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

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

I would depreciate using set ruler because I believe it is not compatible with the statusline options, e.g. if you set the statusline to display the full filepath in combination with set ruler

set statusline+=%F

set ruler

Then it does NOT display the column number but just the full filepath in the statusbar. However if you put the following in your .vimrc

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

It will display everything correctly, namely the

[Filepath/filename] [linenumber]:[column number]

2
Jay

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

set ruler