【问题标题】:vim regex & highlight syntax: find a match and ignore sub-match in itvim 正则表达式和高亮语法:查找匹配项并忽略其中的子匹配项
【发布时间】:2013-03-01 14:11:41
【问题描述】:

我正在尝试在 VIM 中编写语法荧光笔。如何在另一场比赛中突出显示一场比赛?

为了找到每个匹配项,我创建了两个 syn match 行,它们在匹配项分开的情况下工作。

syn match celString "^xpath=.\{-};"      -> matches "xpath=.........;"
syn match celComment "\${.\{-}}"         -> matches "${LIB_METADATA};"

  • xpath 字符串的第一行是粉红色的,${..} 字符串的第一行是蓝色的。

  • xpath 字符串的第二行是粉红色的,但包含在该字符串中的${..} 将被忽略。

我尝试更改 syn match 行的顺序,但这没有任何效果。

非常感谢您的想法。

【问题讨论】:

标签: vim vim-syntax-highlighting


【解决方案1】:

默认情况下,Vim 只将语法组应用于尚未分配语法的文本。要指定一个组可以包含其他组,请使用contains=... 属性:

:syn match celString "^xpath=.\{-};" contains=celComment

这里的定义顺序无关紧要。请参阅:help :syn-contains 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多