帮助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,但有大量的资源谷歌。