vim插件之王——YouCompleteMe

想要让vim拥有类似于IDE那些补全、跳转之类的功能,ycm几乎是不二选择。vim其他插件的补全功能基本靠猜,而ycm则是靠预先编译,它会在后台运行一个clang编译器对工程进行编译,然后根据编译结果推测补全内容。支持的语言种类也很多,不仅支持C族的C/C++/C#,还支持Python、Java、JavaScript、Go、Rust、Ruby、Php等语言。
安装
安装仍然是利用Vundle,在.vimrc中添加:
Plugin 'Valloric/YouCompleteMe'
Plugin 'Valloric/ListToggle'
Plugin 'scrooloose/syntastic'
然后在vim中执行:
:PluginInstall
进行安装。注意这个ycm比较大,大概500M左右,所以安装时间可能稍长。
另外ycm是需要编译安装的,它提供了一个Python的安装脚本,位于~/.vim/bundle/YouCompleteMe,运行:
./install.py --clang-completer
进行编译安装。
配置
ycm配置的核心是一个名为.ycm_extra_config.py的脚本,可以通过这个脚本对ycm的特性进行配置,工程会在当前路径向上查找可用的.ycm_extra_config.py,初期可以使用ycm提供的一个默认配置文件,位于:
~/.vim/bundle/YouCompleteMe/third_part/ycmd/cpp/ycm/.ycm_extra_conf.py
可以将这个文件拷贝到自己的home目录下,当找不到配置文件时,会顺着路径向上查找,知道找到该文件,使默认配置生效。
一些常用用法
进行跳转设置, 在.vimrc中添加如下行:
nnoremap <leader>jd : YcmCompleter GoToDevinitionElseDeclaration<CR>
这里进行说明,这条命令是将一组快捷键映射到一个ycm命令上去,<leader>是vim的一个功能键,可以在.vimrc中用一条命令进行设置:
let mapleader=','
这样就将该键设置为逗号','了。然后要跳转时,在要跳转的位置依次按下','、j、d,就可以跳转到定义处。当然,前提是设置好.ycm_extra_conf.py
关闭语法错误检测提示:
有时候ycm的语法错误检测提示不是很准确(配置脚本没设置好),看着有点碍眼,可以通过命令配置将其关闭,在.vimrc中添加如下两行:
let g:ycm_enable_diagnostic_signs = 0
let g:ycm_enable_diagnostic_highlighting = 0

你可能感兴趣的:(vim插件之王——YouCompleteMe)