在vim中设置多个高亮规则

ICR*_*ICR 16 vim highlighting

我正在尝试设置规则,通过将其添加到我的 .vimrc 来突出显示尾随空格和超过一定长度的行:

highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/
Run Code Online (Sandbox Code Playgroud)

然而,它似乎只选择最后一个。我找不到让他们同时工作的方法。

Den*_*son 9

单程:

highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/
Run Code Online (Sandbox Code Playgroud)

其他:

highlight ExtraWhitespace ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
2match OverLength /\%>80v.\+/
Run Code Online (Sandbox Code Playgroud)

也可用:3match。一次最多可以进行三场比赛。或者您可以matchadd()用来创建匹配而不受数量限制。

注意: 3match是matchparen使用的,所以使用会冲突。


Jam*_*igh 7

使用matchadd(),因此将其添加到您的.vimrc

highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)

highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')
Run Code Online (Sandbox Code Playgroud)

查看所有比赛:

:echo getmatches()
Run Code Online (Sandbox Code Playgroud)

要删除匹配项,请使用matchdelete().