我正在编写一个语法插件,该插件突出显示日志中的某些关键字。 但是仅在出现否定结果词的情况下,我很难突出显示内容。
例如,我不希望突出显示成功
result:good
result:0x0000
但是我想突出显示
result:bad
result:notready
result:0x0001
result:0xffff
result:0x0002
但是我不能为这个负面结果做一个正则表达式。 请问我可以要求您的支持吗?
PS:我已经尝试过
syntax match error_result "\vresult:(good|0x0000)@!"
但它不会突出显示:(冒号)之后的其余部分。
答案 0 :(得分:2)
模式@!
与零宽度匹配。要突出显示冒号后面的所有内容,我们可以在模式后添加.*
(任意数量的任何字符)以匹配行的其余部分,前提是(good|0x0000)
组不匹配。
syntax match error_result "\vresult:(good|0x0000)@!.*"
如果只希望突出显示{em}之后的文本result:
,但是仍然在相同内容上匹配,请在匹配(突出显示)应开始的地方添加\zs
序列。例如:
syntax match error_result "\vresult:(good|0x0000)@!\zs.*"