gpt4 book ai didi

regex - Vim 高亮正则表达式

转载 作者:行者123 更新时间:2023-12-01 03:57:18 25 4
gpt4 key购买 nike

我有一个 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 regex 的有限了解说它应该匹配,但我不知道为什么不匹配。

最佳答案

这可能就是你要找的。它突出显示所有单词 find位于还包含 :: 的行上在它之前。

syn match cppSTL /\(::.*\)\@<=\<find\>/

如果这不是您要的,请告诉我。

关于regex - Vim 高亮正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com