我已成功设置linestatus
配置。但是,唯一缺少的是背景颜色,无论是整行还是特定元素。我该怎么设置它们?
答案 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
如果有更干净的方法,请告诉我!