我有一个 cpp 语法高亮来突出 STL 算法,一行是
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 正则表达式的有限知识说它应该匹配,但我不知道为什么它不匹配。