2013/05/27

[vim] YouCompleteMe




最近因為密集的在 Ubuntu 上追 code,卻發現原本在 mac 的上可以用的 YouCompleteMe plugin,在 Ubuntu 卻因 vim 版本太舊不能用。於是小弟將 vim_7.3.923 放在了 PPA 上,若有剛好使用 vim 及 Ubuntu 的朋友們可以直接這樣安裝:

$ sudo add-apt-repository ppa:fcwu-tw/ppa
$ sudo apt-get update
$ sudo apt-get install vim

(只放了 12.04 and 13.04 這 2 個版本而已,13.10 已經是 7.4 不需更新) (放東西到 PPA 都要等個 20 小時才會幫我編,LP 真是杯具)

接著開始來安裝 YouCompleteMe,假設 vim plugins 是用 vundle 管理:

$ sudo apt-get install build-essential cmake python-dev
$ cd ~/.vim/bundle
$ git clone https://github.com/Valloric/YouCompleteMe
$ cd ~/.vim/bundle/YouCompleteMe
$ ./install.sh --clang-completer
$ # Then, add Bundle 'YouCompleteMe' to your .vimrc

最後,為什麼要用 YouCompleteMe 呢?請配上圖及以下解釋:

  • 不用按任何 tab 來啟用自動補齊
  • 它是使用 fuzzy 方式來當關鍵字,換句話說若是打 dir,可能出來的候選會有 dirxxx, xxxdir, xxxdirxxx,行為就像是其它 vim plugins Ctrl-T or FuzzyFinder
  • 它提供語意上的補齊(semantic completions),像在 python 裡打上 os. 它會幫你找出 os 這個 module 底下的所有 functions, modules 等

後記。在這次編 13.04 的 vim 時遇到 python configuration path 由原本 12.04 的 /usr/lib/python2.7/config 搬到 /usr/lib/python2.7/config-x86_64-linux/gnu,導致 vim configuration 有些地方要稍做修改...

No comments: