[英]vim ctag leading to the wrong definition of fun
我正在使用vim的ctag浏览c ++代码。 在许多情况下,它都可以正常工作。 但是在以下情况下会出现一些错误:
vector<int> v;
v.push_back(10);
当我从此处的“ push_back”导航时,它使我进入/usr/include/c++/4.4.7/bits/basic_string.h的push_back()
我想知道这是vim / ctags的错误还是缺点?
坦斯克!
Vim的标签导航不支持语法树。 默认情况下,它会从标签文件跳转到第一个匹配的标签。
ctags只是跳到第一个匹配的标签:“ push_back()”。 它不知道“ v”的类型是“ std :: vector”。 解决此问题的唯一方法是不使用ctags。 我尝试了不同的vim插件,但是其中大多数对于c ++来说都无法正常工作或根本无法工作。
有插件clang_complete和YouCompleteMe,它们使用clang C ++编译器生成语法树。 它们用于自动完成,但是它们还提供在c ++代码中导航的功能。 YouCompleteMe比clang_complete快得多,但是我认为安装和配置它更加困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.