我正在尝试为虚拟和纯虚拟方法获得不同的颜色,比如
syn region cppVirtualPureMethod start="virtual" end="= 0;"
syn region cppVirtualMethod start="virtual" end="[;{]"
遗憾的是,选择仅使用起始标识符执行,因此无法消除两种情况之间的歧义。是否有一些vim技巧可以获得我需要的东西?
答案 0 :(得分:1)
正如您已经发现的那样,:syn region
仅考虑匹配的start=
部分。您必须使用:syn match
(可能使用跨行匹配的昂贵的正则表达式)来包含差异化结束。
一般而言(考虑到你已经尝试something similar beforehand),在Vim中很难做到这种精心设计的突出显示,其语法解析是为广泛的适用性和80/20正确性而设计的,而不是精确的语法表示。如果你真的需要在不同的视觉风格中显示这种细微的细微差别(特别是对于具有非常复杂语法的C ++),我宁愿使用带有适当语法的IDE作为完整语言。