- 环境说明:ubuntu16.04, x64
效果
插件安装
推荐使用vundle作为vim插件管理(当然pathogen也是蛮好用的)
文件目录显示nerdtree
- .vimrc添加
map <F3> :NERDTreeToggle<CR>
实现F3快捷键展开和收起文件目录结构
代码格式化vim-clang-format
- .vimrc添加
let g:clang_format#style_options = {
\ "AccessModifierOffset" : -4,
\ "AllowShortIfStatementsOnASingleLine" : "true",
\ "AlwaysBreakTemplateDeclarations" : "true",
\ "Standard" : "C++11"}
let g:clang_format#auto_format=1
定义格式化方法以及每次写入文件(:w)的时候自动格式化
代码补全,跳转与错误检查YouComplateMe
- client-server模式,每次打开vim自动启动server。使用vundle安装之后并不能直接使用,需要自行编译ycm_core模块。每次代码更新或者想要支持其他语言,都需要重新编译。命令如下
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
需要拷贝一份
~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
到自己的工程目录,每次打开工程的时候会询问是否加载(你可以将目录加入白名单以不再询问,具体设置可以看github),其中包含了编译命令,可以根据需要自行修改。当然也可以几个工程共用一个脚本,只需要放在工程的公共父目录就可以。或者,也可以在一个vim配置环境下使用同一份,只需要在.vimrc中加入变量let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
代码补全
- 代码补全是自动的,如图所示
- 代码补全是自动的,如图所示
跳转
- 跳转命令使用YcmCompleter命令簇,最常用的就是GoTo,有定义跳转到定义处,没有定义跳转到声明。我在 .vimrc 文件中加入类似快捷键来替代命令输入,这样使用gd就能愉快地跳转,然后 ctrl-o回来
map gd :YcmCompleter GoTo<CR>
map ge :YcmDiags<CR>
- 错误检查
- 错误检查也是自动的,错误的部分会变红,很直观,当然你也可以显式地错误检查,并在quickfix窗口中查看错误列表,就像演示图片一样。显式的错误检查可以使用
:YcmDiags
命令
- 错误检查也是自动的,错误的部分会变红,很直观,当然你也可以显式地错误检查,并在quickfix窗口中查看错误列表,就像演示图片一样。显式的错误检查可以使用