YouCompleteMe 是一款Vim补全插件,是一款 牛逼 的补全插件。首先是名字这么拉风,电影《Dark Knight》中小丑对Batman同样说过这个词:
“I don’t wanna kill you! What would I do without you? Go back to ripping off mob dealers? No, no. No! You…you complete me.”
– Joker in Dark Knight
对这句台词印象深刻所以看到这个插件的名字时便想试试看,而尝试的结果便是太爽了!忍不住要写篇简介介绍推广之。下文便是安装和使用心得。
Vim大家用的比较多的插件管理工具有两款:
个人喜欢前一个,而插件作者喜欢vundle,也推荐用vundle安装。所以用vundle安装方法可以参考官方介绍。
下载源码的命令如下:
cd ~/.vim/bundle
git clone https://github.com/Valloric/YouCompleteMe.git
#for python jedi
git submodule update --init --recursive
插件强烈建议用llvm官方编译好的二进制库,所以直接到官方 下载跟你平台对应的库,比如我下载的就是 Clang Binaries for Ubuntu-12.04/x86
这个版本,现在更新到依赖clang 3.3,可以下预编译的debian版本。假设解压后放的位置在这里:
~/tmp/ycm/clang+llvm-3.2-x86-linux-ubuntu-12.04
至此准备工作就绪。
cd /tmp
mkdir ycm-build
cd ycm-build
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/tmp/ycm/clang+llvm-3.2-x86-linux-ubuntu-12.04 . ~/.vim/bundle/YouCompleteMe/cpp
make ycm_core
此文件配置补全头文件搜寻位置,自己是C开发,所以替换掉默认的C++开发参数。我的更换成如下:
'-std=c99',
# ...and the same thing goes for the magic -x option which specifies the
# language that the files to be compiled are written in. This is mostly
# relevant for c++ headers.
# For a C project, you would set this to 'c' instead of 'c++'.
'-x',
'c',
'-isystem',
'/usr/include',
# This path will only work on OS X, but extra paths that don't exist are not
# harmful
'-I',
'.',
到这里安装ycm的步骤结束,但是不一定就能启动正常因为ycm对Vim版本的要求较高,所以最直接的办法就是先删除本机Vim然后下载Vim源码编译安装最新的Vim即可,具体可以参见ycm的wiki 页有详细的编译步骤。此处不再赘述。
更新过vim然后就可以尝试Vim + ycm的箭步如飞感觉了。