標籤:style http java color 使用 strong
VIM自動補全外掛程式 - YouCompleteMe
序言
vim 之所以被稱為編輯器之神多半歸功於其豐富的可DIY的靈活外掛程式功能,( 例如vim下的這款神級般的代碼補全外掛程式YouCompleteMe), 使用VIM的使用者也多半感覺 IDE開發工具不夠輕便,且IDE往往只支援特定的幾種語言或者特定系統平台,多數人用來用去,還是覺得VIM最順手,用起來最舒心.
下面這個VIM的自動補全外掛程式——YouCompleteMe,為我們彌補了vim不能自動補全的缺憾。YCM不僅僅對C族語言的支援非常好,而且它是一個很強大的VIM自動補全架構,可以和Eclim、Jedi配合,對Java、Python等語言提供非常好的支援。
YouCompleteMe 完整的安裝步驟如下:
升級VIM到7.3.584+,並且支援python內嵌指令碼。584是補丁的編號,一般我們裝的VIM都是不帶補丁的。可以選擇打補丁,不過這樣比較麻煩,我選擇了直接安裝VIM 7.4(下載當前的 vim-7.4a )。
$ ./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做外掛程式管理,不過我之前一直未使用。
首先安裝Vundle:
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
配置 ~/.vimrc:
set nocompatible " be iMprovedfiletype 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:
$ vim +BundleInstall +qall
升級libclang到3.2以上版本,可以通過Xcode來升級。
對於Debian系統,可以添加LLVM源,從源裡安裝。
# LLVM sourcedeb http://llvm.org/apt/wheezy/ llvm-toolchain-wheezy maindeb-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
使用YCM (針對java使用者配置)
對於類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 。