【发布时间】:2013-03-14 22:40:29
【问题描述】:
我试图在 vim 中以不同的方式为不同级别的括号着色 - 类似彩虹括号。但是如果不破坏,我就无法做到这一点,例如 css 突出显示。
问题是:css文件中大括号中的任何文本的语法,非常合理地定义为“包含”,例如:
syn keyword cssColor contained aqua
syn region cssDefinition transparent start='{' end='}' contains=cssColor
根据这个定义,如果关键字“aqua”在大括号中,则会突出显示,否则不会突出显示。
现在,当我为大括号定义区域时:
syn region brace1 transparent contains=brace2
syn region brace2 transparent contained contains=brace3
syn region brace3 transparent contained contains=brace1
为了能够对它们进行不同的着色,我打破了 cssDefinition 对 cssColor 的限制。说包含 ALL 显然不起作用。
所以问题是,是否可以编写代码来获取大括号的原始语法组包含的元素,并将它们添加到新定义的语法组中?我知道这对 css 文件没有真正意义,但一般来说。
【问题讨论】:
标签: syntax vim vim-plugin