2013-03-27 77 views
0

我试图让虚拟和纯虚方法不同的颜色,这样如何为虚拟和虚拟纯方法使用不同的颜色?

syn region cppVirtualPureMethod start="virtual" end="= 0;" 
syn region cppVirtualMethod start="virtual" end="[;{]" 

不幸的是,仅使用开始标识符进行选择,所以它不能在两种情况之间的歧义。有什么vim技巧来获得我需要的吗?

+0

尝试start =“virtual。* = 0;” ? – 2013-03-27 13:52:00

+0

http://stackoverflow.com/questions/15523282/starting-a-syn-region-with-a-keyword这是否帮助你? – Kent 2013-03-27 13:53:37

+0

@brian因为我们对代码进行格式化,所以不能保证在同一行上,所以这是行不通的。我需要一个地区 – 2013-03-27 13:53:42

回答

1

正如你已经发现,:syn region只考虑start=部分的比赛。您必须使用:syn match(可能包含跨行匹配的昂贵正则表达式)以包含差异化结束。

一般(考虑到你已经尝试something similar beforehand),如此精致的高亮很难在Vim的,其语法解析是专为广泛的适用性和80/20-正确性,不准确的语法表述的事情。如果你确实需要用不同的视觉样式显示细微的细微差别(特别是对于C++,它有一个复杂的语法),我宁愿使用一个带有适当语言分析器的IDE。

+0

我很喜欢,但eclipse vim插件不如真实的东西:( – 2013-03-27 15:42:26