El problema es que muchos esquemas de color (¿todos?) Borrarán todos los resaltados highlight clearantes de establecer sus propios colores. Por ejemplo 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 ...
Esto también borra los User1..9grupos (lo cual no tiene mucho sentido, en mi humilde opinión).
La solución es poner User1..9destacados personalizados en el ColorSchemeautocmd. De :help ColorScheme:
Después de cargar un esquema de color. :colorschemeEl patrón coincide con el nombre del esquema de colores. <afile>se puede usar para el nombre del archivo real donde se configuró esta opción y <amatch>para el nuevo nombre del esquema de colores.
Entonces, en lugar de usar un highlightcomando "desnudo" , use:
autocmd ColorScheme *
\ highlight User1 ctermbg=0 ctermfg=10 cterm=bold |
\ highlight User2 ctermbg=0 ctermfg=9 cterm=bold
Si cambia frecuentemente los esquemas de colores, incluso puede 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 que los colores coincidan con esquemas de colores específicos.