我正在尝试在VIM中编写语法高亮显示器。你如何在另一场比赛中突出显示一场比赛?
为了找到每个匹配项,我创建了两条syn match
行,这些行在匹配项分开的情况下工作。
syn match celString "^xpath=.\{-};" -> matches "xpath=.........;"
syn match celComment "\${.\{-}}" -> matches "${LIB_METADATA};"
xpath字符串的第一行是粉红色,${..}
字符串的第一行是蓝色。
xpath字符串的第二行是粉红色,但该字符串中包含的${..}
将被忽略。
我尝试更改syn match
行的顺序,但这没有任何效果。
我很感激你的想法。
答案 0 :(得分:5)
默认情况下,Vim仅将语法组应用于尚未分配语法的文本。要指定一个组可以包含其他组,请使用contains=...
属性:
:syn match celString "^xpath=.\{-};" contains=celComment
这里的定义顺序无关紧要。有关详细信息,请参阅:help :syn-contains
。