我已成功设置我的linestatus配置。然而,唯一缺少的是一些背景颜色,无论是整行还是特定元素。我该如何设置它们?
您需要将颜色定义为新的高亮组 User1、User2 等:
hi User1 ctermbg=blue ctermfg=white guibg=blue guifg=white
hi User2 ctermbg=black ctermfg=red guibg=black guifg=red
Run Code Online (Sandbox Code Playgroud)
然后您可以在状态行字符串中指定它们,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
编辑
这可能属于一个新问题,但这是我用来查找突出显示组的现有着色的方法。在此示例中,我将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
Run Code Online (Sandbox Code Playgroud)
如果有更清洁的方法,请告诉我!