Mac上的Vim
Mac自己實際上是預裝了Vim的,可是目前的系統中都是Vim7.3版本的,而最新的Vim已是7.4版了,所以爲了可以使用最新版的vim,必需要對Mac中的vim要麼升級,要麼重裝。在折騰過程當中,遇到了一些問題,這裏記錄,以鑑後人。
可選方案
升級原生的Vim7.3
這種方法貌似是最」乾淨」的,不會引入其餘任何多餘的東西,對於有潔癖的人這應該是一種比較好的方案。可是,這個方案也有缺點,那就是它會覆蓋原生的Vim,會改變系統的默認設置,而且一旦升級過程當中出現了問題,那你就再也沒有可用的vim了。另一個問題是,之後當你係統升級的時候,頗有可能你本身的vim又會被新系統的vim給覆蓋,這樣會比較麻煩。
使用MacVim
這是一種比較好的方案,Vim官網上也是推薦使用這種方案的,MacVim是針對Mac系統特別定製的Vim版本,安裝過程也很簡單,網上一搜一大把。它功能上和vim徹底一致,不會有任何的問題。要說這種方案其實已經算是一個完美的解決方案了,可是它有一點不太方便的地方,那就是不能直接在終端中使用vim,每次使用MacVim的時候都會單獨開啓一個窗口,有點相似於windows中的gvim。而我我的是比較習慣在終端中寫代碼的,所以這個方案仍是不能知足個人需求。
本身編譯
這是一種終極的方案,可是本身編譯的時候注意要手動更改默認的安裝目錄,否則它就會覆蓋原生的vim7.3,這樣就會變成第一種方案了。將vim7.4安裝在其餘目錄,而後在.bash_profile中添加一個vim命令的別名,將其指向新安裝的vim7.4的目錄,而不是原生的vim7.3目錄。這個方案就能在終端中直接使用vim7.4了,而且不會對原生的vim7.3又任何影響。這個方案惟一的缺點大概就是會在系統中產生兩個不一樣版本的vim了,這也許對一些有潔癖的人是難以接受的。
我本身最終選擇了第三套方案,也就是本身編譯新版本的vim.
從新編譯
好了,如今讓咱們開始折騰吧。php
./configure --with-features=huge --enable-pythoninterp=yes --enable-cscope --enable-fontset --enable-perlinterp --enable-rubyinterp --with-python-config-dir=/usr/lib/python2.6/config --prefix=/opt/local
這個命令是完成對vim的一些配置選項,啓用了python和ruby的支持特性,這仍是比較重要的,由於vim中有些插件會使用python和ruby的,若是沒有開啓這些特性,有些插件是沒法運行的。在這些配置命令中,最後一個--prefix=/opt/local是用來指明安裝目錄的,你也能夠修改爲你本身的目錄。
在寫配置命令的時候,須要注意的是,不能寫上--enable-gui,這是開啓gui特性的,可是咱們是在終端環境下安裝的,所以不能開啓這個特性,不然會出現編譯錯誤。html
:info:build os_unix.c:830:46: warning: declaration of 'struct sigaltstack' will not be visible outside of this function [-Wvisibility]
:info:build extern int sigaltstack __ARGS((const struct sigaltstack *ss, struct sigaltstack *oss));
:info:build ^
:info:build ./os_unix.h:88:21: note: expanded from macro '__ARGS'
:info:build # define __ARGS(x) x
:info:build ^
:info:build os_unix.c:830:13: error: conflicting types for 'sigaltstack'
:info:build extern int sigaltstack __ARGS((const struct sigaltstack *ss, struct sigaltstack *oss));
:info:build ^
:info:build /usr/include/signal.h:89:5: note: previous declaration is here
:info:build int sigaltstack(const stack_t * __restrict, stack_t * __restrict) __DARWIN_ALIAS(sigaltstack);
:info:build ^
:info:build 1 warning and 1 error generated.
:info:build make[1]: *** [objects/os_unix.o] Error 1
:info:build make[1]: *** Waiting for unfinished jobs….)
解決方案也很簡單,只須要在os_unix.h中加上#include <AvailabilityMacros.h>就能夠了。python
好了,如今你的Mac系統已經安裝好了vim7.4了,如今能夠開始愉快的工做了。
參考資料vim