在我想要的 vim 语法文件中
- 命名一场比赛
foo
,然后bar
- 另一个
bar
紧随其后foo
让他们都工作。
这是我到目前为止所拥有的
syn match myFoo /foo\zebar/ display
syn match myBar /foo\zsbar/ display
当我这样做时,它只匹配后一个。我不能同时得到foo
和bar
匹配。
试试这个:
syn match myFoo /foo/ contained
syn match myBar /bar/ contained
syn match myFooBar /foobar/ contains=myFoo,myBar
我已经确认它有效。我有 Vim 为 foobar 着色,其中 foo 是一种颜色,而 bar 是另一种颜色。只有当他们作为 foobar 在一起时才会发生这种情况;否则它们不会着色。我将它们分配到不同的类别,如下所示:
hi def link myFoo Keyword
hi def link myBar Type
您可能已经涵盖了这一点。