我正在编写一个语法插件,它突出了我日志中的某些关键字。但是,只有在被跟随结果否定的情况下才能突出显示。
例如,我不想在成功时突出显示,
result:good
result:0x0000
不过我想强调一下
result:bad
result:notready
result:0x0001
result:0xffff
result:0x0002
但我不能为这个负面结果制作一个正则表达式。我可以请求你的支持吗?
PS:我试过了
syntax match error_result "\vresult:(good|0x0000)@!"
但它并没有突出显示剩下的部分:(冒号)。
模式@!
匹配零宽度。要突出显示冒号后的所有内容,我们可以在模式后添加.*
(任意数量的任何字符)以匹配行的其余部分,仅当(good|0x0000)
组不匹配时。
syntax match error_result "\vresult:(good|0x0000)@!.*"
如果您只希望突出显示result:
之后的文本,但仍然匹配相同的内容,请添加匹配(突出显示)应该开始的\zs
序列。例如:
syntax match error_result "\vresult:(good|0x0000)@!\zs.*"