仅将突出显示规则作为语法文件中的下一个组运行?

时间:2013-04-26 01:22:24

标签: vim syntax highlight

我在自定义语法文件中有这些规则。

syn match id '\w\+'
syn keyword _type void int bool string list nextgroup=id

我只想在id之后匹配_type

1 个答案:

答案 0 :(得分:7)

你已经离我很近了。

  • 为避免 id 组与其他任何地方匹配,只需添加contained
  • 对于nextgroup=...,匹配必须在当前组结束后完全开始。因此,您需要在 id 组匹配中包含前导空格:\s\+,或添加skipwhite
  • 语法组的命名约定是在它们前面添加语法名称;我在这里使用了my...
:syn match myId '\w\+' contained
:syn keyword myType void int bool string list nextgroup=myId skipwhite