Windows vim (74) 语法文件,语法与应有的不匹配

Windows gvim (74) syntax file, syntax not matching what it sould

我正在尝试创建一个 vim 语法文件(实际上是针对 gvim,但它们应该非常相似),但我的匹配组之一与它应该匹配的不匹配。

我需要匹配文字 "nop" 或 "NOP" 并将其灰显。 我是怎么做的:

syn match nopkw 'nop|NOP'

据我所知,而且(更重要的是)regex101.com,这应该匹配文字 "nop" 或 "NOP"。稍后在我的文件中我使用

highlight nopkw guifg=#d3d3d3

如果我是正确的,这应该使所有 "nop" 变成浅灰色。但事实并非如此。 我的文件中有其他匹配项可以正常工作,例如数字:

syn match num '\d+'
highlight num guifg=#ff0000

正如预期的那样工作正常。为什么 "nop" 正则表达式不起作用,你能帮我找到一个吗?

谢谢。

幸运的是,答案非常简单。您需要转义栏,因为它作为 'or' 工作。试试这个:

syn match nopkw 'nop\|NOP'

或者,另一种选择是使用 magic option。这看起来像这样:

syn match nopkw '\vnop|NOP'