2

我想突出显示过长的行Vim(如这里:https ://stackoverflow.com/a/235970/1329844 )以及尾随空格(如这里:https ://stackoverflow.com/a/4617156/1329844 )。但是,每当我同时使用两个高光时,只会应用最后一个高光。

我的代码中有以下代码.vimrc

highlight OverLength ctermbg=0 ctermfg=197
match OverLength /\%>80v.\+/
highlight ExtraWhitespace ctermbg=0
match ExtraWhitespace /\s\+$/

当我打开一个文件时,只突出显示尾随空格。如果我交换两个突出显示/匹配对的顺序,则仅突出显示超长行。我需要更改什么才能匹配并突出显示两种模式?

4

2 回答 2

3

:match命令只能有一个活动模式。如果您的两个高光使用相同的颜色,您可以将图案与\|. 在这里,您必须使用两个替代命令之一::2matchor :3match,或者您可以使用(较新的)matchadd()函数,您可以在其中指定任意数字(> 3)作为(最后一个){id}参数。

:call matchadd('OverLength', '\%>80v.\+', 10, 4)
:call matchadd('ExtraWhitespace', '\s\+$', 10, 5)
于 2013-10-18T14:15:47.457 回答
2

我认为,Ingos 解决方案是首选,但尽管如此,你可以使用这个:

:match MyCustomHighlight /\%(\s\+$\)\|\(\%>30v.\+\)/
:highlight MyCustomHighlight ctermbg=0 ctermfg=197
于 2013-10-19T11:46:38.967 回答