Выделение более 80 символов с нестандартной цветовой схемой - PullRequest
14 голосов
/ 17 октября 2011

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

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

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

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

У кого-нибудь есть идеи, как заставить это работать с изменением colorscheme? Спасибо за вашу помощь,

Ответы [ 3 ]

21 голосов
/ 17 октября 2011

Если у вас Vim 7.3+, вы можете использовать:

:set colorcolumn=81
17 голосов
/ 17 октября 2011

Это потому, что большинство цветовых схем имеют эту строку в начале:

hi clear

Это очистит все созданные группы подсветки (вы создали OverLength). Это хорошо, потому что ни в одной цветовой схеме не установлено ни одной вещи, и цвета из предыдущей использованной схемы могут остаться.

Чтобы решить, вместо создания новой группы, сопоставьте этот шаблон с Error, который является группой Vim по умолчанию, будет присутствовать в каждой цветовой схеме. Просто поменяйте две строки на одну:

match Error /\%81v.\+/
0 голосов
/ 20 октября 2011

Вы можете использовать событие Colorscheme для определения группы OverLength:

augroup AddOverLength
    autocmd!
    autocmd ColorScheme * :highlight OverLength ctermbg=red ctermfg=white guibg=#59292
augroup END

Обратите внимание, что вы должны либо поместить все вызовы :colorscheme, которые происходят в вашем vimrc после этого определения, либо явно запустить это событие с помощьюиспользуя :doautocmd AddOverLength ColorScheme.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...