Як я можу встановити лінійку на певний стовпець?


50

Під час кодування різними мовами, як правило, потрібно обмежувати рядки певною довжиною (як правило, 79 або 80 символів).

Я бачив це в інших редакторах за допомогою лінійки (суцільна лінія, що відображається у стовпці) або шляхом зміни кольору тексту, щоб вказати, що він перейшов.

Як я можу змусити Vim вказувати мені, коли я наближаюся або переходжу понад 79 символів в одному рядку?

Відповіді:


64

Ви можете відобразити лінійку в певній лінії, використовуючи параметр :set colorcolumn( :set ccна короткий час), який доступний лише у Vim 7.3 або новіших версіях.

set colorcolumn=80

Це встановить колір фону стовпця червоним, надаючи вам візуальну лінійку для роботи.

Зображення кольорової колонки за замовчуванням встановлено на 80

Якщо ви хочете використовувати інший колір, крім червоного (який дійсно виділяється), ви можете змінити колір, встановивши highlightдля ColorColumn.

highlight ColorColumn ctermbg=0 guibg=lightgrey

Налаштований колір для стовпця

Ви можете встановити колір для термінальних версій Vim, використовуючи ctermаргумент та версії GUI Vim, використовуючи guibgаргумент. 0Це значення коду ASCII для втечі чорного, який є сірим , коли прояснився (який, за замовчуванням). Значення lightgreyвикористовується для GUI-версій Vim, як gVim, для зміни кольору фону на світло-сірий.


10
Ви навіть можете мати кілька кольорових стовпців, розділених комами!
200_успіх

4
Поєднайте це з об'єднанням і діапазоном, і ви можете мати колонку, забарвлену з дуже маленьким кодом. Мій .vimrc має:execute "set colorcolumn=" . join(range(81,335), ',')
Опитування Коді

19

Як доповнення до відповіді Кевіна, ви можете мати кілька кольорових стовпців. Коли я кодую, у мене іноді є "м'який" межа в 80 стовпців і "жорсткий" межа в 120 стовпців. Тому я хочу, щоб рядок на 80, а потім кожен стовпчик після 120 був кольоровим.

Я роблю це з

let &colorcolumn="80,".join(range(120,999),",")

Звичайно, це можна легко змінити на інші уподобання.


14

Vim 7.3 пропонує такий colorcolumnваріант, як це дуже детально описано в інших відповідях.

Однак якщо з будь-якої причини у вас немає версії 7.3, ви все одно можете досягти візуального вказівки на те, що ви перевищуєте певну кількість стовпців, використовуючи matchфункціонал vim (див. :help matchПодробиці).

По суті, команди відповідності дозволяють створювати стійкі виділення для відповідності тексту заданому регулярному виразу. :match ColorColumn "\%80v."виділить текст у стовпці 80 із групою "ColorColumn". Звичайно, можна замінити будь-яку групу виділення та будь-яке значення стовпця. Якщо ви хочете отримати чітку візуальну індикацію, вираз "\%>79v.\+"виділить стовпчик 80 і далі.

( \%80vозначає "збіг у віртуальній колонці 80" і \%>79vозначає "збіг за віртуальним стовпцем 79; див. :help /\%cдокладніше.)

Цей підхід виділить лише тоді, коли в зазначених стовпцях наявні фактичні символи, що робить його візуально менш послідовним, ніж colorcolumn.


4
Особисто мені здається менш послідовним підхід matches, тому що він підкреслює лише ті рядки, де я перевищую обмеження в 80 стовпців, а не показую (мені) нав'язливу велику червону лінію праворуч на екрані. Отже, в моєму vimrc для Python я використовую call matchadd('ColorColumn', '\(\%80v\|\%100v\)')(80 і 100 - пропонована довжина в PEP 8)
jalanb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.