我试图让虚拟和纯虚方法不同的颜色,这样如何为虚拟和虚拟纯方法使用不同的颜色?
syn region cppVirtualPureMethod start="virtual" end="= 0;"
syn region cppVirtualMethod start="virtual" end="[;{]"
不幸的是,仅使用开始标识符进行选择,所以它不能在两种情况之间的歧义。有什么vim技巧来获得我需要的吗?
我试图让虚拟和纯虚方法不同的颜色,这样如何为虚拟和虚拟纯方法使用不同的颜色?
syn region cppVirtualPureMethod start="virtual" end="= 0;"
syn region cppVirtualMethod start="virtual" end="[;{]"
不幸的是,仅使用开始标识符进行选择,所以它不能在两种情况之间的歧义。有什么vim技巧来获得我需要的吗?
正如你已经发现,:syn region
只考虑start=
部分的比赛。您必须使用:syn match
(可能包含跨行匹配的昂贵正则表达式)以包含差异化结束。
一般(考虑到你已经尝试something similar beforehand),如此精致的高亮很难在Vim的,其语法解析是专为广泛的适用性和80/20-正确性,不准确的语法表述的事情。如果你确实需要用不同的视觉样式显示细微的细微差别(特别是对于C++,它有一个复杂的语法),我宁愿使用一个带有适当语言分析器的IDE。
我很喜欢,但eclipse vim插件不如真实的东西:( – 2013-03-27 15:42:26
尝试start =“virtual。* = 0;” ? – 2013-03-27 13:52:00
http://stackoverflow.com/questions/15523282/starting-a-syn-region-with-a-keyword这是否帮助你? – Kent 2013-03-27 13:53:37
@brian因为我们对代码进行格式化,所以不能保证在同一行上,所以这是行不通的。我需要一个地区 – 2013-03-27 13:53:42