Подтвердить что ты не робот

Выделение более 80 символов с нестандартной схемой цветов

В vim я пытаюсь выделить его на экране, когда он содержит более 80 символов (я разработчик ядра, и это требование для кода ядра). Я использую следующее в файле .vimrc для этого.

highlight OverLength ctermbg=red ctermfg=white guibg=#59292
match OverLength /\%81v.\+/

который был предложен здесь: Разметка столбца Vim 80 касается

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

Есть ли у кого-нибудь идеи о том, как сделать эту работу с изменением colorscheme? Благодарим за помощь,

4b9b3361

Ответ 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.