メモ:vimでgoの自動補完ができるようにする(FreeBSD 10.0)

けっこう壊して作り直すことが多いので、なるべくデフォルトの設定を使います。

Go

Goをインストール

pkgコマンド一発です。

pkg install go

環境変数の設定

↓この辺を見て適当に

Getting Started - The Go Programming Language

vim

vimをインストール

pkg install vim

公式のプラグインを設定

↓この辺を見て適当に

jnwhiteh/vim-golang · GitHub

各種プラグインをインストール

NeoBundle

とりあえず入れときます。結局ここではSuperTabしか入れなかったのであれですけど。。

mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

NeoComplete

これは、なんかどうもpkgで入れられるやつはif_luaが有効になっていないらしく、断念しました。
Shougo/neocomplete.vim · GitHubによると、確かめ方は、vimコマンドラインで以下を実行して1ならOKらしいです。手元で試すと0だったのでダメでした)

:echo has("lua")

SuperTab

どうせNeoCompleteが入れられないなら、まあSuperTabくらいでいいか、と思ってこれにしました。
YouCompleteMeはGoでは使えないっぽいので断念しました)
$HOME/.vimrcに以下を追記して、インストールします。

" My Bundles here:
NeoBundle 'ervandew/supertab'

gocodeのオムニ補完をメインに使いたいのですが、デフォルトの補完方式は<C-p>(キーワード補完)になってるので、変更します。
<C-x><C-o>を指定するか、contextとやるといい感じにやってくれるらしいです。$HOME/.vimrcに以下を追記します。
(参考:supertab/doc/supertab.txt at master · ervandew/supertab · GitHub

" SuperTab
let g:SuperTabDefaultCompletionType = "context"

gocode

(参考:nsf/gocode · GitHub

go get -u github.com/nsf/gocode
$GOPATH/src/github.com/nsf/gocode/vim/update.sh

これで、とりあえずタブ押せば補完してくれるようになりました。たぶん。