Проблема в том, что многие (все?) Схемы 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
группы (что не имеет большого смысла, ИМХО).
Решение состоит в том, чтобы поместить пользовательские 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
чтобы получить цвета, соответствующие конкретным цветовым схемам.