Das Problem ist, dass viele (alle?) Farbschemata alle Glanzlichter löschen, highlight clearbevor sie ihre eigenen Farben festlegen . Zum Beispiel von /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 ...
Dies auch löscht die User1..9Gruppen (die nicht viel Sinn machen, IMHO).
Die Lösung besteht darin, benutzerdefinierte User1..9Highlights in das ColorSchemeAutocmd einzufügen. Von :help ColorScheme:
Nach dem Laden eines Farbschemas. :colorschemeDas Muster wird mit dem Namen des Farbschemas abgeglichen. <afile>kann für den Namen der tatsächlichen Datei verwendet werden, in der diese Option festgelegt wurde, und <amatch>für den neuen Farbschemanamen.
Verwenden Sie also anstelle eines "nackten" highlightBefehls:
autocmd ColorScheme *
\ highlight User1 ctermbg=0 ctermfg=10 cterm=bold |
\ highlight User2 ctermbg=0 ctermfg=9 cterm=bold
Wenn Sie häufig zwischen Farbschemata wechseln, können Sie sogar Folgendes verwenden:
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
um Farben an bestimmte Farbschemata anzupassen.