Vim 代码补全和检查: YouCompleteMe & syntastic

Vim 7.4 发布, 最近升级了Vim, 并安装了YouCompleteMe和Syntastic插件, 这里记录下过程

升级Vim

YouCompleteMe 需要Vim 7.3.584+的支持, 并且开启 +python , 可以通过:version查看 升级Vim需要先卸载原有的Vim

sudo apt-get remove vim vim-tiny vim-common vim-runtime gvim vim-gui-common

并安装以下依赖

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev \
    python-dev ruby-dev mercurial checkinstall

下载最新的Vim源码, 这里从代码仓库获取(需要hg没有自行安装)

hg clone https://vim.googlecode.com/hg/ vim

然后进入目录编译安装Vim

cd vim
./configure --with-features=huge \
            --enable-rubyinterp=yes \
            --enable-pythoninterp=yes \
            --enable-python3interp=yes \
            --enable-perlinterp=yes \
            --enable-luainterp = yes \
            --enable-gui=gtk2 --enable-cscope --prefix=/usr
make VIMRUNTIMEDIR=/usr/share/vim/vim74
sudo checkinstall

安装llvm

如果想是想C系语言的补全, 需要libclang 3.2以上的版本, Ubuntu 12.10 自带的是3.0, 所以先安装LLVM, 可以下载二进制文件/编译安装

下载二进制

llvm.org上下载相应的版本解压到~/ycm_temp

编译

下载clangllvm, 解压llvm

mkdir ~/ycm_temp
cd ~/ycm_temp
tar -zxvf llvm-3.3.src.tar.gz -C llvm.src

解压 clang到llvm.src/tools

tar -zxvf cfe-3.3.src.tar.gz -C ~/ycm_temp/llvm.src/tools/
mv ~/ycm_temp/llvm.src/tools/cfe-3.3.src ~/ycm_temp/llvm/tools/clang

编译llvm会自动编译clang

cd ~/ycm_temp
mkdir llvm_build
cd llvm_build
cmake ../llvm.src/CMakeList.txt ../llvm.src
make

安装YouCompleteMe

使用Vundle安装YouComplete(猛击这里了解Vundle)

编译ycm_core

mkdir ~/ycm_build
cd ~/ycm_build
cmake -G "Unix Makefiles"  ~/.vim/bundle/YouCompleteMe/cpp -DEXTERNAL_LIBCLANG_PATH=~/ycm_temp/llvm.src/lib/libclang.so 
make ycm_core

下载llvm二进制的可以参考

cmake -G "Unix Makefiles"  ~/.vim/bundle/YouCompleteMe/cpp -DEXTERNAL_LIBCLANG_PATH=~/ycm_temp/llvm_root_path/lib/libclang.so

配置

YouCompleteMe 需要一个配置文件来补全, 可以参考官方配置文件, 可以将配置文件至于项目根目录或者上级目录, YouCompleteMe 会自动检测加载, 也可以通过指定g:ycm_global_ycm_extra_conf指定一个全局的配置文件

YouCompleteMe 每次加载配置文件会有一个提示, 很烦人, 可以通过将g:ycm_confirm_extra_conf置为0关闭提示

补全Python

YouCompleteMe 通过 jedi插件来补全Python, 可以通过Vundle安装此插件,在.vimrc中添加

Bundle "davidhalter/jedi"

代码检查

syntastic是一个代码检查的插件, 通过Vundle安装它, 在.vimrc中添加

Bundle "scrooloose/syntastic"

重新打开Vim, 执行

:BundleInstall

配置

因为Python已经有pylint来检查, 而且syntastic检查Python会在保存时有很长时间的卡顿, 所以禁用它对Python文件的检查

let g:syntastic_ignore_files=[".*\.py$"]
Show Comments