Проблема полягає в тому, що багато (всі?) Кольорові схеми очистять усі основні моменти, 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
щоб кольори відповідали певним кольоровим схемам.