O problema é que muitos esquemas de highlight clear
cores (todos?) Limparão todos os destaques antes de definir suas próprias cores. Por exemplo, de /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 ...
Isso também limpa os User1..9
grupos (o que não faz muito sentido, IMHO).
A solução é colocar User1..9
destaques personalizados no ColorScheme
autocmd. De :help ColorScheme
:
Depois de carregar um esquema de cores. :colorscheme
O padrão é comparado ao nome do esquema de cores. <afile>
pode ser usado para o nome do arquivo real em que essa opção foi definida e <amatch>
para o novo nome do esquema de cores.
Portanto, em vez de usar um highlight
comando "bare" , use:
autocmd ColorScheme *
\ highlight User1 ctermbg=0 ctermfg=10 cterm=bold |
\ highlight User2 ctermbg=0 ctermfg=9 cterm=bold
Se você alterna frequentemente os esquemas de cores, pode até usar:
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
para obter cores correspondentes a esquemas de cores específicos.