序言html
java
下面這個VIM的自動補全插件——YouCompleteMe,爲咱們彌補了vim不能自動補全的缺憾。YCM不單單對C族語言的支持很是好,並且它是一個很強大的VIM自動補全框架,能夠和Eclim、Jedi配合,對Java、Python等語言提供很是好的支持。python
YouCompleteMe 完整的安裝步驟以下:c++
升級VIM到7.3.584+,而且支持python內嵌腳本。584是補丁的編號,通常咱們裝的VIM都是不帶補丁的。能夠選擇打補丁,不過這樣比較麻煩,我選擇了直接安裝VIM 7.4(下載當前的 vim-7.4a )。git
$ ./configure --with-features=huge --enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-cscope --enable-multibyte --disable-gui --prefix=/usr $ make VIMRUNTIMEDIR=/usr/share/vim/vim74a # make install
經過 Vundle 安裝YCM。官方比較推薦使用Vundle作插件管理,不過我以前一直未使用。github
首先安裝Vundle:vim
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
配置 ~/.vimrc:ruby
set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' (本句後面不要添加註釋,不然會報錯哦~奇葩~) Bundle 'Valloric/YouCompleteMe' (本句後面也不要添加任何註釋,不然也會報錯~) filetype plugin indent on " required! " " Brief help " :BundleList - list configured bundles " :BundleInstall(!) - install(update) bundles " :BundleSearch(!) foo - search(or refresh cache first) for foo " :BundleClean(!) - confirm(or auto-approve) removal of unused bundles " " see :h vundle for more details or wiki for FAQ " NOTE: comments after Bundle command are not allowed..
安裝YCM:bash
$ vim +BundleInstall +qall
升級libclang到3.2以上版本,能夠經過Xcode來升級。app
對於Debian系統,能夠添加LLVM源,從源裏安裝。
# LLVM source
deb http://llvm.org/apt/wheezy/ llvm-toolchain-wheezy main deb-src http://llvm.org/apt/wheezy/ llvm-toolchain-wheezy main
編譯ycm_core。先去安裝一個 cmake 工具。
編譯:
$ cd ~/.vim/bundle/YouCompleteMe $ ./install.sh --clang-completer --system-libclang (直接用也是能夠的~)
注意
若是不使用 --system-libclang 參數,則ycm會本身下載Ubuntu x64的clang+llvm-3.3的二進制包,這在一些平臺會有兼容問題。
編譯過程也能夠不使用install.sh腳本。則使用以下命令:
$ mkdir ycm_build
$ cd ycm_build $ cmake -G "Unix Makefiles" -DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so . ~/.vim/bundle/YouCompleteMe/cpp $ make ycm_core $ make ycm_support_libs
安裝Eclim來處理java。下載 Eclim 2.2.6 ,安裝Eclim 2.2.x要求Eclipse 4.2.x。在Mac下直接雙擊在圖形界面安裝便可。
在.vimrc中增長一些配置。
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' let g:EclimCompletionMethod = 'omnifunc'
修改.ycm_extra_conf.py文件,註釋掉下面代碼,開啓對C++標準庫的支持。
#try:
# final_flags.remove( '-stdlib=libc++' ) #except ValueError: # pass
對於類C語言和Python,YCM能夠直接使用,對於Java,須要先啓動Eclim。
下面主要說說用Eclim+YCM開發Java工程的方式。
首先啓動Eclim服務,執行/Users/yeolar/.eclipse/org.eclipse.platform_4.2.0_119745494/eclimd 。
爲了方便,能夠在~/.bash_profile中添加別名:
alias eclimd='/Users/yeolar/.eclipse/org.eclipse.platform_4.2.0_119745494/eclimd 2>&1 1>/dev/null &'
能夠驗證一下Eclim的安裝:
:PingEclim " 服務是否正常 :EclimValidate " 驗證vim配置有效
建立Java工程:
:ProjectCreate /path/to/project -n java
建立工程會自動建立.classpath、.project文件和src目錄。可使用 :ProjectList 查看工程列表。
添加工程的源代碼路徑能夠在.classpath文件中使用 :NewSrcEntry path/to/new/src 完成。默認在工程建立時已經添加了src目錄。
編寫代碼。正常編寫便可,由於已經在YCM中添加了Eclim的相關配置,因此自動完成功能已經和YCM的一致。更多用法能夠參考 http://eclim.org/vim/java/index.html 。