這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
自從上一次配置好Mac上的Golang Vim開發環境,基本上就沒怎麼動過。近兩年過去了,Go已經升級到了1.7版本,Vim-go截至目前也已經演化到了1.8版本了。社區的積極關注和使用,讓Vim-go的作者Fatih Arslan備受鼓舞,於是近一年來,積極為vim-go添加新功能,發布新版本,並編寫了vim-go的詳細tutorial。這讓我動了更新Vim-go版本的念頭,於是就有了本篇內容。
已經記不得當初第一次配置vim-go時,vim-go的版本號碼是多少了。經過近兩年的發展,vim-go已然正式成為Vim下Go開發環境的標準Plugin了。Go從當年的1.4升級到1.7,相關工具也跟著一起升級,比如oracle變成了guru,名字都換了。支援go的編輯器也逐漸增多並日益成熟,從最初vim、liteIDE,到後來的eclipse、IntelliJ Idea、atom、sublime text以及vscode對golang都提供了支援。這樣一來,無論你之前是哪種IDE的擁躉,你都能找到得心應手的環境走入Golang世界。
我個人一直用vim,sublime text3曾經玩過,沒玩熟,卸了。目前機器上還裝了一份vscode,感覺在IDE領域中,微軟的影響力和成熟度等級不容小覷,vscode + golang extension從入門門檻來看,還是非常低的。即便vim-go進化到1.8版本,仍然不如vscode安裝體驗來得方便。當然這不全是vim-go的問題,而是vim的設計哲學所致。
無論是vim-go還是vscode golang plugin,都要依賴golang的周邊工具,主要包括gocode、goimports、guru、godef、golint、gometalinter等。在這方面,vim-go提供了安裝依賴工具的方法“:GoInstallBinaries”,或在外部通過:vim -c “GoInstallBinaries” -c “qa”安裝(在安裝vim-go之後);而vscode則會自動探測其所依賴的工具是否安裝,如果沒有安裝,會在vscode的下方給出提示,點擊提示,會安裝相應的工具。
BTW,自從近期golang官網:golang.org不用再翻牆後,go get下載golang.org網域名稱下面的各種工具也簡單了許多,大陸的Gopher們再也無需擔心go package下載的問題了。
升級vim-go之前,建議先備份好.vimrc檔案:
cp .vimrc .vimrc.bak.20160908
vim-go外掛程式安裝由很多方法,在vim-go tutorial中,vim-go作者選擇了vim-plug,而沒有用之前的vim外掛程式管理工具vundle.vim,方法都是大同小異:
下載vim-plug:
$curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 67682 100 67682 0 0 7020 0 0:00:09 0:00:09 --:--:-- 12576
安裝vim-go:
在.vimrc中填寫如下內容:
call plug#begin()Plug 'fatih/vim-go'
然後執行”:PlugInstall”即可。
在安裝依賴工具期間,發現mac原生內建的vim(macvim,又叫mvim,安裝在/usr/local/bin/mvim)版本還是7.3.xx版本,無法滿足一些工具的要求,於是通過brew安裝vim(安裝在/usr/local/Cellar/vim/7.4.2334/bin/vim),然後通過/usr/bin/vim的一個符號連結連過去即可。
$ll /usr/bin|grep vimlrwxr-xr-x 1 root wheel 38 9 8 16:21 vim@ -> /usr/local/Cellar/vim/7.4.2334/bin/vim... ...
注意,考慮要安裝neocomplete以支援即時completion(補齊),vim需要有lua支援,因此執行brew install時要帶上–with-lua參數:
brew install vim --with-lua
vim-go升級版安裝後,可按照vim-go-tutorial中的步驟,體驗一下vim-go的強大,同時對.vimrc進行相關配置,並安裝缺失的vim外掛程式,比如neocomplete、UltiSnips等。我針對vim-go 1.8配置好的.vimrc在這裡可以下載到。
具體細節這裡就不提了,如果還有哪些細節不清楚或實驗沒成功,可以回過頭參考我那篇《Golang開發環境搭建-Vim篇》。
2016, bigwhite. 著作權.