问题描述
我想更改双大括号内文本的颜色
像这样的 {{a + b}} ,但到目前为止,这是我唯一能够实现的目标:
syn match parens /[{}]/
hi parens ctermfg=red guifg=red
这并不是我想要的,我可以更改方括号的颜色 如果我尝试这样做根本不起作用
/{([^}]+)}}/
我该如何正确编写呢?
解决方法
我更习惯于在vim中“魔术化”正则表达式,因此我将使用它们来编写示例,但是您可以轻松地转换为vim支持的其他类型的正则表达式(请参见:help magic
)。
如果我正确理解了您的问题,我认为您可以按照以下规则实现您想要的目标:
syntax match parens "\v\{\{.{-}\}\}"
highlight parens ctermfg=red guifg=red
此正则表达式由于.
与 {{这些语法}} 与花括号内的任何字符匹配。语法{-}
与*
等效,只是vim尝试匹配 {{和}} 之间最小的字符。这样您就不会匹配 {{some}}示例{{text}} ,而不会匹配 {{some}} 示例 {{text}} 。如果要更详细地说明 {{和}} 中可以匹配的内容,可以更改.
。