帮助configurationVim的C + +

我想让我的C ++编辑器。 我有很小的工作经验,需要帮助configurationvim来使用c ++。 我需要这样的function

  • 代码完整(适用于stl和我的课程)
  • 在.cc和.h文件之间切换
  • 可能会有更多的技巧,你和C ++和vim大师。

可能是你可以提供一些configuration(有解释),或指向我可以使用的教程,插件的链接?

  • 代码完整: Omni完成或Clang自动完成或YouCompleteMe
  • 实时语法检查: Syntastic
  • 在源文件和头文件之间切换: 一个插件
  • 片段: Snipmate或UltiSnip
  • searchvariables,函数,类等的引用: Cscope
  • 转到定义: Ctags或上面提到的YouCompleteMe子命令的一部分
  • 重构工具: 重构 , lh重构
  • 有用的文本对象: Arg文本对象和Class文本对象
  • Vim提示wiki中的C ++类
  • Luc Hermitte的C / C ++插件
  • 不是特定的C ++,但我也推荐使用FuzzyFinder或Command-T或Unite进行文件导航。 使用这两者中的任何一个,您甚至不需要制表符(不能缩放10个以上的文件)来pipe理您的项目。
  • 类导航: Taglist或Tagbar

编辑:截至2013年7月更新

我使用vim作为我的C ++编辑器,但是我没有使用许多“异国情调”的东西。

  • 关于完成,我使用非上下文^P^N
  • 我有一堆用户定义的缩写为我的C ++使用,例如:

     abbreviate bptr boost::shared_ptr abbreviate cstr const std::string & 
  • 我有几个“代码片段”function的东西,例如:

     function! IncludeGuard() let basename = expand("%:t:r") let includeGuard = '__' . basename . '_h__' call append(0, "#ifndef " . includeGuard) call append(1, "#define " . includeGuard) call append(line("$"), "#endif /* !" . includeGuard . " */") endfunction 
  • 我真正无法生存的唯一插件是Command-T (它需要Ruby支持)

  • 为了方便.cc切换,你可以试试这个插件

NERDTree http://www.vim.org/scripts/script.php?script_id=1658

繁琐的ctags(vim本身已经支持热键) http://ctags.sourceforge.net/

taglist: http : //vim-taglist.sourceforge.net/

snipmate: http : //www.vim.org/scripts/script.php? script_id = 2540

我不会只是通常的^ n ^ p的东西omgompletion,但有大量的资源谷歌。