我有一个看起来像这样的文件
def foo bar {{
// some stuff in here that shouldn't have }}; in it
}};
我想语法突出显示这些块的某些类型。我的第一个订单近似是:
highlight DefFoo ctermfg=darkgreen
let defFoo = 'def foo .* {{.*}};'
call matchadd('DefFoo', defFoo)
但是,突出显示的唯一内容是第一行def foo bar {{
。我一直试图找到一种方法来执行全局搜索的matchadd
,但我一直在失败。有没有办法做到这一点?
答案 0 :(得分:2)
.
与新行不匹配。另一方面\_.
。所以你的模式是:
def foo \_.* {{\_.*}};
我发现使用类似以下内容的一场比赛很不错:
:match Error /foo-pattern-here/
可以用
清除:match
请注意,具有昂贵模式的:match
可能会导致匹配的文本在某些屏幕重绘时无法正确突出显示。调整您的模式或向上调整'redrawtime'
了解更多信息:
:h :match
:h /\_.