14

是否有任何 VIM 插件可用于索引 C++ 项目代码库?

我会欣赏功能,例如能够指定一个类,并且可能是一个方法,并查看该方法/类定义的文件/行。

4

3 回答 3

23

关于代码导航(和完成)

我会看一下clang_indexer(和clang_complete)——ctag 对 C++ 代码的理解相当糟糕,但是universal-ctags 大大改善了这种情况;cscope 对 C++ 的理解是不存在的。

关于 C++ 编码的插件

我有一套C 和 C++ 编程套件。它主要面向 C++ 编程,但也有一些独特的功能也可以在 C 中使用:

  • 上下文相关的片段(它们需要我正在维护的其他插件);
  • 一种从其声明中跳转到函数定义的方法(或者如果它还不存在则动态创建它)(它曾经需要插件替代,这是必须的,但是我已经我的自己的需要) -> :GOTOIMPL;
  • 一个小工具,列出了有声明但没有定义的函数,或有定义但没有声明的函数(注意:我还没有将它用于 C 静态函数)(它需要 ctags)。
  • :Override搜索可覆盖函数
  • :DOX分析 C++ 函数签名以生成适当的(可定制的)doxygen 注释(使用 \param、\throw、...)
  • 包含定义光标下符号的头文件的映射*(需要最新的 ctags 库)
  • 和其他几件事

否则,我也使用:

  • 像 project/ local_vimrc这样的插件,以便有项目特定的设置
  • searchInRuntime无需浏览当前项目的目录即可打开/跳转到文件;
  • 一个重构插件(仍然缺少一些东西......);
  • :make 的包装器,用于进行后台编译,并过滤 &makeprg 结果(例如 cygwin posix 形式和 dos 形式之间的路径名转换;STLfilt 的应用程序等)(-> BuildToolWrapper,它是稳定的,但仍处于 alpha 阶段) ;
  • 以及已经提到的其他一些内容(alternate,ctags,...)。

其他插件。

其他人使用 c.vim、其他模板系统(snipmate & co)、pyclewn(我强烈建议从 vim 中调试(使用 gdb))、其他括号环绕和扩展系统,...

PS:我在quora上回答了一个关于同一主题的问题,但略有不同。

于 2012-06-21T12:21:20.010 回答
3

cscope是一个不错的浏览工具。这里有很好的教程。

ctags是另一个不错的工具,我在我的项目中使用它。教程在这里。如果您在 Ubuntu 中,则可以ctags通过以下方式安装:

apt-get install exuberant-ctags

gtags是另一个工具。

于 2012-06-21T04:50:06.277 回答
2

我广泛使用taglist

“标签列表”插件是 Vim 编辑器的源代码浏览器。它概述了源代码文件的结构,并允许您有效地浏览不同编程语言的源代码文件。它是 Vim 编辑器中评价最高和下载次数最多的插件。

于 2012-06-21T08:12:43.813 回答