Вам необходимо определить цвета как новые группы подсветки User1, User2 и т.д .:
hi User1 ctermbg=blue ctermfg=white guibg=blue guifg=white
hi User2 ctermbg=black ctermfg=red guibg=black guifg=red
Затем вы можете указать их в строке состояния следующим образом:
set statusline=
set statusline+=%1* " Switch to colour User1
set statusline+=%F
set statusline+=%* " Switch to default colour
set statusline+=%P
set statusline+=%2* " Switch to colour User2
set statusline+=%c
РЕДАКТИРОВАТЬ
Это, вероятно, относится к новому вопросу, но вот метод, который я использую, чтобы найти существующую раскраску для группы выделения. В этом примере я установил синтаксис Folded
таким же, как текущий синтаксис Normal
. Я делаю это, направляя вывод hi Normal
в переменную, а затем извлекая из нее различную информацию.
redir => hinorm
sil exe 'hi Normal'
redir END
if hinorm =~ 'cleared'
sil exe 'hi clear Folded'
else
let guibg = matchstr(strtrans(hinorm),'guibg=[#a-zA-Z0-9]*')
let guifg = matchstr(strtrans(hinorm),'guifg=[#a-zA-Z0-9]*')
sil exe 'hi Folded ' . guibg
sil exe 'hi Folded ' . guifg
endif
Если есть более чистый метод, дайте мне знать!