問題は、多くの(すべて?)カラースキームが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
ます(IMHOはあまり意味がありません)。
解決策はUser1..9
、ColorScheme
autocmd にカスタムハイライトを配置することです。から:help ColorScheme
:
配色を読み込んだ後。:colorscheme
パターンはカラースキーム名と照合されます。<afile>
このオプションが設定された実際のファイルの名前と<amatch>
新しいカラースキーム名に使用できます。
したがって、「裸の」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
特定のcolorchemesに一致する色を取得します。