3

在我想要的 vim 语法文件中

  • 命名一场比赛foo,然后bar
  • 另一个bar紧随其后foo

让他们都工作。

这是我到目前为止所拥有的

 syn match myFoo /foo\zebar/ display

 syn match myBar /foo\zsbar/ display

当我这样做时,它只匹配后一个。我不能同时得到foobar匹配。

4

1 回答 1

3

试试这个:

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

您可能已经涵盖了这一点。

于 2012-04-08T07:11:54.030 回答