次ログ

次ログ

ゆるりと働いているSREの技術ブログのような何か。趣味の話も書く

Go言語 学習メモ02 - vimでの開発環境構築

どうもです。次郎です。

やっと休みになったので、 VimでGo言語を開発するためにやったメモを残します。

目次

セットアップ環境

Linux Mint 18.2 Mate

セットアップ

書式設定

僕のVimの環境では、インデントの設定に下記の設定をしています。

  • タブ文字を半角スペースに置換
  • タブ文字の文字幅は2文字

Go言語のgo fmtで自動整形されるとき、インデントはタブ文字で行われます。そこはGo 言語の習わしに合わせるようにしたほうがよいので、Go言語だけ異なる設定になるように 、vimの設定を追加します。

set noexpandtab
set tabstop=4
set shiftwidth=4
inorea iferr if err != nil {<CR>fmt.Println(err)<CR>os.Exit(1)<CR>}<ESC>

上記の設定を$HOME/.vim/vimfiles/after/ftplugin/go.vimのファイルに記述します。

iferrは、Goだと頻繁に発生するerr処理のためのスニペットです。個人利用する分だと、 err処理はos.Exit(1)で十分だと思ったので。

GOPATH環境変数を追加

$HOME/.bashrcにGOPATHを追加します。 go getで追加されるパッケージはここに追加されます。

export GOPATH=$HOME/.go

gocodeのインストール

以下のコマンドをターミナルで実行します。
go get github.com/nsf/gocode

実行が終わると$HOME/.goの配下にインストールされます。

vimプラグイン設定の追加

.vimrcにプラグイン読み込みの設定を追加します。

僕の環境では dein.vim を使用しているので、deinのコマンドを記述します。

call dein#add('fatih/vim-go')
call dein#add('vim-jp/vim-go-extra')

上記をdeinの設定の箇所に追加してvimを起動しなおします。

次にvimのコマンドで :GoInstallBinariesを実行します。

処理が完了したら、下記の設定を.vimrcに追加します。

exe "set rtp+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim")

結果

:Godoc packagename でドキュメントを読むことができませんでしたが、関数の補完や、 ファイル保存時に自動で整形、インポート追加が実行できることを確認しました。これで Go開発をスムーズに進められそうです。

参考リンク