我试图定义一个vim突出显示方案,其中属于语言功能的括号与功能相同,例如,如果功能为红色,则其括号也将为红色。我的想法是将它们与其他圆括号结构区分开来。 (也许这实际上是一个可怕的想法,但我想尝试一下。)
我尝试定义这样的区域:
syn region Function matchgroup=Function start=+Abcd\s*(+ end=+)+ contains=ALL
然而,这从未找到它的结束括号。
按照以下建议(谢谢!)我将其更改为:
hi Function gui=bold guifg=Red guibg=NONE
syn region SpecialFunc matchgroup=Function start=+Abcd\s*(+ end=+)+ contains=ALL keepend
if 0
Abcd(123)
Abcd(Xxxx(123))
endif
(将上面保存为.vim文件,在Vim和:so %
中打开以进行测试。)
我现在知道了:
答案 0 :(得分:1)
要突出显示示例中的结束括号,可以尝试
hi Functionmine gui=bold guifg=Red guibg=NONE
syn region Functionmine matchgroup=Function start=+TestFun\s*(+ end=+)$+ contains=ALL keepend
另一次尝试:
hi Function gui=bold guifg=Red guibg=NONE
hi InsideFunction gui=NONE guifg=NONE guibg=NONE
syn match Function "Abcd(.*)" contains=InsideFunction
syn match InsideFunction "(\zs.*\ze)"
if 0
Abcd(123)
Abcd(Xxxx(123))
endif