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
编译
下载clang和llvm, 解压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$"]