首先,我将展示我遇到的具体问题,但我认为该问题可以概括描述。
我正在使用一种具有显式括号语法(类似Lisp)的语言,但是只有关键字保留在左括号中。例如:
我正在使用一种具有显式括号语法(类似Lisp)的语言,但是只有关键字保留在左括号中。例如:
(key key)
前者是保留字,但后者是指名为“key”的变量的引用。
不幸的是,我发现突出显示左括号很烦人,所以最终我使用了:
syn keyword classification key
替代
syn keyword classification (key
但前者也会在变量使用时触发。
我可以采取一些方法来解决我的问题,但我更感兴趣的是一种通用方法,只突出显示给定匹配的子集。
2match
是match
命令的一种变体,优先级较低。它与syn match
完全无关。:match
及其相关命令/函数用于突出显示当前窗口中的模式,而不考虑缓冲区。在Vim 7之前,只有match
命令。在Vim 7中,它增加了2match
和3match
。补丁7.1.040添加了clearmatches()
、getmatches()
、matchadd()
、matchdelete()
和setmatches()
函数,允许使用基本上无限的匹配模式。 - jamessan