我有一个语法高亮的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