问题在于,许多(全部?)highlight clear
配色方案会在设置自己的颜色之前清除所有高光。例如来自/usr/share/vim/vim74/colors/peachpuff.vim
:
" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "peachpuff"
hi Normal guibg=PeachPuff guifg=Black
hi SpecialKey term=bold ctermfg=4 guifg=Blue
" ... Many more highlights follow ...
这也可以清除User1..9
组(恕我直言,恕我直言)。
解决方案是将自定义User1..9
高亮显示在ColorScheme
autocmd中。来自:help ColorScheme
:
加载配色方案后。:colorscheme
图案与colorscheme名称匹配。<afile>
可用于设置此选项的实际文件的名称,以及<amatch>
新的colorcheme名称。
因此,不要使用“ bare” highlight
命令,而应使用:
autocmd ColorScheme *
\ highlight User1 ctermbg=0 ctermfg=10 cterm=bold |
\ highlight User2 ctermbg=0 ctermfg=9 cterm=bold
如果您经常切换颜色方案,甚至可以使用:
autocmd ColorScheme colorscheme_one_name highlight User1 ctermbg=0 ctermfg=10 cterm=bold
autocmd ColorScheme another_scheme highlight User1 ctermbg=0 ctermfg=11 cterm=bold
使颜色与特定的配色方案匹配。