我最近为我找到了一小段代码.vimrc
if has("autocmd")
" Highlight TODO, FIXME, NOTE, etc.
if v:version > 701
autocmd Syntax * call matchadd('Todo', '\W\zs\(TODO\|FIXME\|CHANGED\|XXX\|BUG\|HACK\)')
autocmd Syntax * call matchadd('Debug', '\W\zs\(NOTE\|INFO\|IDEA\)')
endif
endif
Run Code Online (Sandbox Code Playgroud)
基本上,它允许我定义与不同突出显示匹配的关键字(Todo 和 Debug 是颜色的名称)。
有没有一种方法可以定义我自己的配色方案并给它们命名?具体来说,我想要的是 3 个标签:TODO1、TODO2 和 TODO3。这个想法是 TODO3 的优先级低于 TODO1,因此以较浅的阴影突出显示。
如果我无法定义自己的颜色,在哪里可以找到我可以使用的颜色名称列表?
如果您不想使用默认主题颜色,解决方案如下:
" Define autocmd for some highlighting *before* the colorscheme is loaded
augroup VimrcColors
au!
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=darkgreen guibg=#444444
autocmd ColorScheme * highlight Tab ctermbg=darkblue guibg=darkblue
augroup END
Run Code Online (Sandbox Code Playgroud)
稍后(这必须是之后):
" Load color scheme
colorscheme yourscheme
Run Code Online (Sandbox Code Playgroud)
颜色定义遵循以下格式:
autocmd ColorScheme * highlight <ColorName> ctermbg=<TerminalBackgroundColour> guibg=<GuiBackgroundColour> ctermfg=<TerminalFontColor> guifg=<GuiFontColour>
Run Code Online (Sandbox Code Playgroud)
其中cterm颜色必须来自预定义的列表(请参阅 参考资料:help cterm-colors获取更多信息)。Gui 颜色可以是任何十六进制颜色。