我想用%1*突出显示我的状态行(的一部分),例如: :



如果我键入:highlight User1,它显示User1 xxx cleared,并且如果我在命令窗口中键入:highlight User1 ctermbg=0 ctermfg=10 cterm=bold,它的确起作用。 >如何将其放入我的.vimrc文件中?

我用于测试的完整vimrc文件:

#1 楼

问题在于,许多(全部?)配色方案会在设置自己的颜色之前用highlight clear清除所有高光。例如,从/usr/share/vim/vim74/colors/peachpuff.vim中:解决方案是将自定义User1..9高亮显示在User1..9 autocmd中。来自ColorScheme:加载配色方案后。


:help ColorScheme图案与
颜色方案名称匹配。 :colorscheme可以用作设置此选项的实际文件的名称
<afile>可以用作新的颜色方案的名称。


所以不要使用“裸” <amatch>命令,使用:

" 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 ...


如果您经常切换颜色方案,甚至可以使用:

autocmd ColorScheme *
        \ highlight User1 ctermbg=0 ctermfg=10 cterm=bold |
        \ highlight User2 ctermbg=0 ctermfg=9 cterm=bold


来获得与特定颜色方案匹配的颜色。