改变vim的linestatus颜色

时间:2011-12-05 10:18:18

标签: configuration vim

我已成功设置linestatus配置。但是,唯一缺少的是背景颜色,无论是整行还是特定元素。我该怎么设置它们?

1 个答案:

答案 0 :(得分:4)

您需要将颜色定义为新的突出显示组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

如果有更干净的方法,请告诉我!