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

  • 119
    いいね
  • 4
    コメント
この記事は最終更新日から1年以上が経過しています。

この記事は古いです。現在は 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 補完を有効にしましょう。