使用Vim作为C++11 IDE

4

我已经在Vim中设置了我的开发环境一段时间了。由于我的所有项目都是C++11,我找到了一些插件,使我的生活变得更加轻松,几乎和Intellij和Java的日子一样好。但是仍然有一些功能缺失。

我最想要的主要功能是重构工具(跨项目重命名、将代码重构为函数/类、删除类等)。你有什么建议,我如何在vim中获得这样的功能?

我正在使用以下插件:


gmarik/vundle
Valloric/YouCompleteMe
a.vim
wincent/Command-T
DoxygenToolkit.vim
scrooloose/nerdtree
godlygeek/tabular
tpope/vim-sensible
tpope/vim-unimpaired
tpope/vim-endwise
tpope/vim-fugitive
jeffkreeftmeijer/vim-numbertoggle
Lokaltog/vim-easymotion
rstacruz/sparkup'
Mizuchi/STL-Syntax

如果您想了解全部细节,请查看我的 .vimrc 文件(欢迎在 gist 中进行贡献):

https://gist.github.com/MauricioCarneiro/9547864


说实话,为什么不自己动手写呢?这是一个很好的学习经验。也许可以选择romainl答案中提到的项目,并将其更新。 - Mark
4个回答

4
在我的插件套件中,您会发现以下内容:
  • lh-cpp(各种专为C++设计的工具)
  • lh-brackets(智能插入括号、环绕等)
  • mu-template,带有高级C++感知功能的模板和代码段
  • 一个local_vimrc插件,用于定义项目
  • BuildWrapperTools

    • 包装对make的调用,
    • 提供编译器输出的过滤器(例如,即时添加STLfilt),
    • 允许在CMake项目下切换调试/Release/其他配置;这里有一个示例
  • lh-refactor(通用重构套件)

在github上,我还有一个实验性项目,用于包装clang-indexer。


3
我认为你需要使用 Ultisnips, Tagbartcomment 这些插件,特别是 Ultisnips
关于配置的更多信息,请参考:https://github.com/xautjzd/dotvim

你的 .vimrc 文件中为什么使用 Ultisnips 而不是 honza/vim-snippets?我很好奇,有什么好的建议吗? - Carneiro

1
我所知道的仅有的针对C++11的重构工具是来自LLVM和英特尔团队的clang-modernize谷歌的Chandler Carruth在YouTube上发表了演讲)。你可以像其他命令行工具一样从vim中运行它,例如:
:!clang-modernize -style=Google -format -loop-convert -pass-by-value -replace-auto_ptr -use-nullptr -use-auto -add-override -override-macros %
%符号将在结尾处扩展为您当前文件的路径。现在有更多的工具可用,如clangtidycquery
您可以使用类似ALE vim插件的东西使所有修复程序和linters在您键入时自动纠正您的代码。或者(这是我首选的解决方案),您可以使用专用语言服务器coc.nvim插件,这允许完整的IDE体验(具有特定于代码的修复程序、片段、跳转到定义、查找所有接口实现等)。

0

Refactor 是 vim.org 上唯一的 C++ 重构插件。不过,它的最新更新是在2007年,所以我不确定它是否适用于 C++11。

你也可以尝试 Eclim,这是一个 Eclipse/Vim 插件,可以让你从 Vim 中使用 一些 Eclipse 特性


5
无论如何,Vim是一个文本编辑器,不是一个集成开发环境(IDE)。如果您需要使用IDE,请使用另一个。 - romainl
我的大多数插件都专注于C++,而lh-refactor虽然还有改进的空间,但也支持C++。 - Luc Hermitte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接