Выделение более 80 символов с нестандартной схемой цветов
В vim я пытаюсь выделить его на экране, когда он содержит более 80 символов (я разработчик ядра, и это требование для кода ядра). Я использую следующее в файле .vimrc для этого.
highlight OverLength ctermbg=red ctermfg=white guibg=#59292
match OverLength /\%81v.\+/
который был предложен здесь: Разметка столбца Vim 80 касается
Тем не менее, я цветной, и в результате я не могу использовать цветовую схему по умолчанию и видеть текст на экране, поэтому я меняю свою цветовую схему по умолчанию, используя :colorscheme torte
. Тем не менее, кажется, что colorscheme переопределяет выделение на мне (он выделяется отлично, когда я не указываю указанную цветовую схему и не указывается, когда она указана).
Есть ли у кого-нибудь идеи о том, как сделать эту работу с изменением colorscheme
? Благодарим за помощь,
Ответы
Ответ 1
Это потому, что большинство цветовых схем имеют эту строку в начале:
hi clear
Очистите все созданные группы выделения (вы создали OverLength
). Это хорошо, потому что ни одна цветовая схема не имеет каждой вещи, и цвета из предыдущей используемой схемы могут появляться.
Чтобы решить, вместо создания новой группы, сопоставить этот шаблон как Error
, который является группой Vim по умолчанию, будет присутствовать в каждой цветовой схеме. Измените две строки одним простым:
match Error /\%81v.\+/
Ответ 2
Если у вас есть Vim 7.3+, вы можете использовать:
:set colorcolumn=81
Ответ 3
Вы можете использовать событие Colorscheme
для определения группы OverLength:
augroup AddOverLength
autocmd!
autocmd ColorScheme * :highlight OverLength ctermbg=red ctermfg=white guibg=#59292
augroup END
Обратите внимание, что вы должны либо поместить все вызовы в :colorscheme
, которые произойдут в вашем vimrc после этого определения, либо явно запустить это событие, используя :doautocmd AddOverLength ColorScheme
.