Изменить цвета linestatus в Vim - PullRequest
3 голосов
/ 05 декабря 2011

Я успешно установил свою linestatus конфигурацию.Однако, единственное, чего не хватает, это некоторый цвет фона, либо для всей строки , а также для отдельных элементов .Как я могу установить их?

1 Ответ

4 голосов
/ 05 декабря 2011

Вам необходимо определить цвета как новые группы подсветки 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

Если есть более чистый метод, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...