我有一個語法高亮的CPP突出STL算法,一條線是Vim的亮點正則表達式
syn keywork cppSTL find
我的問題是,在我工作的一個項目,有一些類與命名方法find
哪些被突出顯示,我希望它只在STL調用中突出顯示。
所以我決定前行更改爲:
syn match cppSTL /[^.>:]\<find\>/ms=s+1
syn match cppSTL /\<std::find\>/ contains=cppScope
syn match cppScope /::/
hi clear cppScope
和它的作品大部分時間。但如果在這一行失敗:
vector<string>::iterator i = find(find(x.begin(), x.end(), val), x.end(), term);
^^^^
第一個find
被正確突出顯示,但第二個失敗。我對vim regex的有限知識表示它應該匹配,但我無法弄清楚它爲什麼不匹配。
只是踢,嘗試:I =找到(...);我= find(...); ...他們都在同一條線上。我很好奇,如果它只是找到每條線上的第一場比賽 – 2013-04-24 19:54:08
@Brian:同一行上的兩個調用起作用;我認爲這個問題是因爲在parentesis裏面第二個'find' - 如果我用'(find(...))'''圍繞一個調用,突出失敗' – Akobold 2013-04-25 14:29:56