在Vim中查找C++类成员的定义/引用

tj5*_*511 17 c++ vim

我正在使用Vim进行一个我已经开始研究的C++项目,并且我最近花了很多时间浏览现有的代码来获取它.为了使浏览更容易,我在Vim中设置了ctags和cscope来跳转到定义并找到引用.

但是,我发现它们都不够智能,无法知道成员变量/函数属于哪个类.例如:

class Square;
...

Square a;
...
a.rotate();
Run Code Online (Sandbox Code Playgroud)

试图找到定义rotate()也会带来其他类的成员函数,比如Triangle.我g]在Vim中使用了一个匹配标签列表,幸运的是ctags列出了每个条目的相关类.但是,当有200个具有相同成员函数的类时,追捕正确的标记可能会很烦人.

另外,如果我在函数定义:

Square::rotate()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

试图找到rotate()使用cscope的所有调用会调用Triangle和其他类的旋转函数.

因此,我发现自己偶尔跳到Visual Slickedit来查找成员函数或成员变量的定义或引用.有什么方法可以在古老的Vim中实现这一目标吗?

Sta*_*ked 1

我过去一直在寻找比 cscope 更好的解决方案,但从未找到任何东西。最后也许 cscope 缺乏情报并不是什么大问题。

问题是市场上没有强大且开放的智能感知库。也许是CodeInsight