在vim中,当它超过80个字符时,我试图突出显示我的屏幕(我是内核开发人员,这是内核代码的要求)。我在.vimrc文件中使用以下内容来执行此操作
highlight OverLength ctermbg=red ctermfg=white guibg=#59292
match OverLength /\%81v.\+/
这里建议:Vim 80 column layout concerns
但是,我是色盲,因此我无法使用默认的colorscheme并看到屏幕上的文字,因此我也使用:colorscheme torte
更改了我的默认colorscheme。但是,看起来colorscheme会覆盖我的突出显示(当我没有指定colorscheme时它突出显示,并且在指定时没有突出显示)。
有没有人对如何使用colorscheme
更改进行此操作有任何想法?谢谢你的帮助,
答案 0 :(得分:21)
如果你有Vim 7.3+,你可以使用:
:set colorcolumn=81
答案 1 :(得分:17)
这是因为大多数配色方案都是在他们的开头有这条线:
hi clear
清除所有突出显示的组(您创建了OverLength
)。这很好,因为没有colorscheme设置所有东西,并且使用之前的方案的颜色可能仍然出现。
要解决此问题,不是创建新组,而是将此模式与Error
(默认的Vim组)匹配,它将出现在每个颜色方案中。简单地改变你的两行:
match Error /\%81v.\+/
答案 2 :(得分:0)
您可以使用Colorscheme
事件来定义OverLength组:
augroup AddOverLength
autocmd!
autocmd ColorScheme * :highlight OverLength ctermbg=red ctermfg=white guibg=#59292
augroup END
请注意,您必须在此定义之后将所有对:colorscheme
的调用置于vimrc中,或者使用:doautocmd AddOverLength ColorScheme
明确启动此事件。