2012年3月18日 星期日

vim + clang_complete

最近寫了不少 c/c++ code, 如果有 vs ide like 的 auto complete 的話, 可以少很多工.

vim 下老牌的 auto complete 大概是 omni cpp complete 了吧, 不過唯一的缺點我覺得是, 要搭配 ctags 服用.


前兩天在 twitter 上看人講到 clang_complete 這套, 試用之後果然考試都考一百分了, 感覺十分爽快.


在 FreeBSD 下面要安裝很簡單, 首先你需要 vim with python support.


1: 到 /usr/ports/editors/vim-lite 下面重新安裝 vim,
    make WITH_PYTHON=yes install
2: 將 clang_complete clone 下來.
    git clone https://github.com/Rip-Rip/clang_complete.git
3: 確定有裝 clang; cd /usr/ports/lang/clang; make install
4: freebsd 9.0 之後, 系統預設就有 clang 了, 但是如果要更快點,
    這是不夠的, 因為相關 library 都被 static link 進 clang binary 中,
    最好是另外安裝 ports 裡面的版本.
5: 到 clone 下來的 clang_complete 下面, make install 就完成了.
    會看到相關的 code 都被安裝到 ~/.vim 下面.
6: 會感覺到慢吧? 因為他預設某些選項是關掉的,
    所以每次要 auto complete 的時候, 都會執行一下 clang,
    重新讀入所有要 parse 的 header files, 速度自然快不起來.
7: 在 .vimrc 下面加行 'let g:clang_use_library=1' 吧.
    這會改用 libclang 做 parse 的動作, 並且將結果 cache 在記憶體
    裡面, 你在該次的 vim session 中, 都會使用到 cache 裡的資料.