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'
我正在尝试创建一个 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'