我正在使用Vim进行一个我开始研究的C ++项目,并且我最近花了很多时间浏览现有的代码来获取它。为了使浏览更容易,我在Vim中设置了ctags和cscope来跳转到定义并找到引用。
然而,我发现他们都不够聪明,无法知道成员变量/函数属于哪个类。例如:
class Square;
...
Square a;
...
a.rotate();
尝试找到rotate()
的定义也会带来其他类的成员函数,比如Triangle。我在Vim中使用g]
来显示匹配标记的列表,幸运的是,ctags列出了每个条目的关联类。但是,当有200个具有相同成员函数的类时,追捕正确的标记可能会很烦人。
另外,如果我在函数定义中:
Square::rotate()
{
...
}
尝试使用cscope查找对rotate()
的所有调用会调用Triangle和其他类的旋转函数。
因此,我发现自己偶尔跳到 Visual Slickedit 来查找成员函数或成员变量的定义或引用。有没有什么办法可以在古老的 Vim 中实现这个目标?
答案 0 :(得分:3)
SrcExpl可能是您需要的插件。试试吧。
答案 1 :(得分:1)
我过去一直在寻找比cscope更好的解决方案,但从来没有找到过什么。最后,也许cscope缺乏智能并不是那么麻烦。
问题在于市场上没有强大而开放的智能感知库。也许是CodeInsight。
答案 2 :(得分:1)
这似乎是一个很好的候选人http://vim.wikia.com/wiki/C%2B%2B_code_completion。我有一些好运,它在Java中做类似的事情。不完全确定它可以为你提供你想要做的一切。
答案 3 :(得分:1)
你可以试试taglist插件,虽然它在某种程度上仍然遇到与内置ctag支持相同的问题。它的工作方式与SrcExpl的工作方式相同。