VimでGoのコードを書くときにやっておきたいこと

More than 3 years have passed since last update.

この記事は古いです。現在は misc/vim は存在しません。 vim-go を使うことを推奨します


準備: GOROOT と GOPATH の設定

vim にかぎらず、 Go を使う場合はGOROOT と GOPATH を設定しておきましょう。

GOROOT は Go をインストールした場所に、 GOPATH はあとで go get するときにインストールする場所を指定します。

export GOROOT=$HOME/local/go

export GOPATH=$HOME/_go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

ただし、 Go を自分でビルドした場合は、 GOROOT の設定はいりません。 go をビルドした時のターゲットディレクトリが自動的に使われます。

GOROOT を設定しないことで、複数のバージョンの go をインストールしても、起動する go を変えるだけでよくなります。 (GOROOT を設定していると、バージョン切り替えには GOROOT の切り替えが必要になります)


基本: go に同梱されいてる vim の設定を利用する

GO の misc/vim に vim 用の設定ファイルが存在します。これを利用しましょう。 .vimrc に次の設定を書いておきます。

if $GOROOT != ''

set rtp+=$GOROOT/misc/vim
endif


もっと便利に: gocode を使う

gocode をインストールすると補完ができます。

$ mkdir -p $GOPATH/bin

$ go get github.com/nsf/gocode
$ ~/_go/src/github.com/nsf/gocode/vim/update.sh

これで Omni 補完がコンテキストを理解して賢く補完してくれます。

Omni 補完は多分デフォルトでは C-x C-o などになっていますが、 neocomplcache などを利用している場合はそちらで Omni 補完を有効にしましょう。