Vim语法文件。在'foobar'中独立匹配'foo'和'bar'

时间:2012-04-08 05:00:15

标签: regex vim

在我想要的vim语法文件中

  • 将一个匹配foo命名为bar
  • 以及bar
  • 后面的另一个foo

让他们都工作。

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

 syn match myFoo /foo\zebar/ display

 syn match myBar /foo\zsbar/ display

当我这样做时,它只匹配后者。 我无法让foobar匹配。

1 个答案:

答案 0 :(得分:3)

试试这个:

syn match myFoo /foo/ contained
syn match myBar /bar/ contained
syn match myFooBar /foobar/ contains=myFoo,myBar

我已经确认它有效。我有Vim着色foobar,其中foo是一种颜色,而条形是不同的颜色。只有当他们在一起作为foobar时才会发生这种情况;否则他们没有着色。我将它们分配到不同的类别:

hi def link myFoo Keyword
hi def link myBar Type

你可能已经覆盖了这个。