Vim:如何突出显示功能的括号

时间:2015-09-29 18:07:01

标签: vim vim-syntax-highlighting

我试图定义一个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 %中打开以进行测试。)

我现在知道了:

Screenshot showing nested brackets are not preserved

1 个答案:

答案 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