Vim匹配奇怪的行为

时间:2014-07-14 16:14:59

标签: vim

我设置了以下匹配项以突出显示代码中的TODO

hi todo guifg=#b294bb
match todo /TODO:?/

但该规则与TODO:(CoffeeScript文件)中的optionl冒号不匹配:

enter image description here

我尝试了一些正则表达式的变体,比如逃避冒号或用parens包裹它。

奇怪的是,它在某些文件类型中的工作方式不同,例如:

  • 在我的屏幕截图(CoffeeScript)中,它与冒号不匹配。
  • 在LESS,它与任何东西都不匹配。
  • 在vim文件中,它匹配TODO和冒号。

我错过了什么?我的语言语法文件中的某些内容是否覆盖了此规则?

请注意,我正在使用AfterColors插件来创建此颜色自定义。

2 个答案:

答案 0 :(得分:1)

问号与vim正则表达式中的文字问号相匹配(默认情况下)。如果您使用\v将模式设置为非常神奇,您将获得您期望的行为。 (或使用\?

match todo /\v\CTODO:?/

建议在脚本中使用正则表达式时明确设置魔术模式和区分大小写,因为它们受用户设置的影响。

阅读:h magic:h \C

答案 1 :(得分:0)

“todo”组已存在(并匹配/TODO/),请尝试使用其他名称。