Способ я указание 80-столбца в Vim кажется неправильным: set columns=80
. Иногда я тоже set textwidth
, но я хочу быть в состоянии увидеть и предвидеть переполнение линии с set columns
альтернативой.
Это имеет некоторые неприятные побочные эффекты:
- Я не могу из-
set number
за страха разделения между файлами с разными порядками номеров строк; т. е. <100 строковых файлов и> = 100 строковых файлов потребуют два разныхset columns
значения из-за дополнительного столбца, используемого для отображения дополнительных цифр. - Я также начинаю новые (g) сессии Vim вместо разделения окон по вертикали. Это связано с тем
vsplit
, чтоset columns
каждый раз, когда я открываю или закрываю панель, я вынужден открывать новую сессию.
Как вы справляетесь с 80-символьной индикацией, когда хотите set numbers
, вертикальным разделением и т. Д.?
vim
coding-style
cdleary
источник
источник
Ответы:
Я настроил это в моем .vimrc:
Это выделяет фон тонким красным цветом для текста, который превышает ограничение в 80 столбцов (в любом случае, в режиме графического интерфейса тонкое - в режиме терминала это не так).
источник
Начиная с версии 7.3 вы можете использовать
set colorcolumn=80
(set cc=80
для краткости).Поскольку более ранние версии не поддерживают это, я
.vimrc
использую вместо этого:Смотрите также онлайн документацию по
colorcolumn
опции .источник
highlight ColorColumn ctermbg=7
Более короткий путь:
источник
ErrorMsg
являетсяhighlight-group
. В Vim есть множество групп подсветок по умолчанию, которые вы можете использовать на основе цветовой кодировки, которую вы хотите для этого случая.Я предпочитаю:
источник
Ответ Саймона Ховарда великолепен. Но
/\%81v.\+/
не в состоянии выделить вкладки, которые превышают столбец 81. Поэтому я немного изменил настройки, основываясь на материалах, которые я нашел на вики-сайте VIM, и на выборе цветов HS выше:И теперь VIM выделит все, что превышает столбец 80.
источник
guifg=white
в конце там.Минималистичный, не чрезмерный подход. Только 79-й символ слишком длинных строк выделяется. Он преодолевает несколько распространенных проблем: работает в новых окнах, переполненные слова выделены правильно.
Примечание: обратите внимание, что
FileType scala,java
это ограничивает исходные файлы Scala и Java. Возможно, вы захотите настроить это. Если вы опустите его, он будет работать на всех типах файлов.источник
FileType scala,java
? (не работает для меня)Вы также можете нарисовать линию, чтобы увидеть 80 предел:
Результат:
источник
Хороший способ пометить только первый символ, выходящий за указанные границы:
Из разговора Дамиана Конвея .
источник
Более новые версии vim допускают
:set numberwidth=x
значение, которое устанавливает ширину отображения номера строки. Я на самом деле не использую складывание и т. Д., Поэтому я бы не знал об этом. Хотя рисование тонкой вертикальной линии выходит за рамки консольного приложения. GVim может разрешить это (я не использую это, поэтому не могу комментировать там).источник
Я боюсь, что вы наложили ограничения на набор решений, которые, ну, оставляют вас с нулевым набором.
Использование
:set textwidth=80
исправит все проблемы, которые вы упомянули, за исключением того, что вы не можете легко увидеть приближающийся предел линии. Если вы:set ruler
, вы включите отображение положения x, y в строке состояния, которое вы можете использовать, чтобы увидеть, в каком столбце вы находитесь.Кроме того, я не уверен, что тебе сказать. Стыдно терять числовой столбец, складывать столбец и разбивать только потому, что вам нужно
:set columns=80
.источник
Вы можете попробовать это:
Это создаст две подсветки в каждом буфере, один для символов в 8 столбцах перед тем, что вы
&textwidth
установили, и один для символов за пределами этого столбца. Таким образом, у вас есть некоторая степень ожидания. Конечно, вы можете настроить его, чтобы использовать другую ширину, если вы хотите более или менее предвосхищения (за которое вы платите в виде потери подсветки синтаксиса в этих столбцах).источник
Что ж, глядя на столбцы: help, на самом деле с ним не связываются.
В консоли это обычно определяется настройками консоли (т.е. определяется автоматически); в графическом интерфейсе он определяет (и определяется) ширину окон gvim.
Поэтому обычно вы просто позволяете консолям и оконным менеджерам выполнять свою работу, комментируя
set columns
Я не уверен, что вы подразумеваете под «увидеть и предвидеть переполнение линии». Если вы хотите, чтобы EOL вставлялся примерно в столбец 80, используйте либо
set textwidth
илиset wrapmargin
; если вы просто хотите мягкую перенос (то есть строка переносится, но без фактического EOL), поиграйте сset linebreak
иset showbreak
.источник
это поле находится вне левого поля, но это хорошая маленькая карта для изменения размера вашего текущего разбиения до 80 символов, если у вас есть номера строк:
источник
Вы можете попробовать это, чтобы установить размер окна, чтобы разрешить 80 символов реального текста. Это все еще не работает с вертикальными расщеплениями все же.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
Для этого требуется vim 7+, 7.3 для относительного номера.
источник