我試圖讓虛擬和純虛方法不同的顏色,這樣如何爲虛擬和虛擬純方法使用不同的顏色?
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