快適にGoを書くための設定たち - 2015 Spring
インターネット上に転がってる情報は古いものも多いので,Goはじめるついでに2015年4月中旬ごろのトレンドっぽい?設定を探してみました.
なんかおかしな点や抜けてるところ等あればご教授いただけると幸いです.
\ Go! Go! /
ʕ◔ϖ◔ʔ
Goのインストール
Homebrewから.
$ brew install go
環境変数GOPATH
及びPATH
を設定しておく(2015/04/14 18:15 追記: GOROOT
については記事の末尾に追記したので参照されたい).
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/opt/go/libexec/bin:$GOPATH/bin
Vimの設定
インデントの設定
Goはスペースでなくハードタブでのインデントが推奨されているので,その設定を追加する.
We use tabs for indentation and gofmt emits them by default. Use spaces only if you must. - formatting | Effective Go - The Go Programming Language
~/.vim/after/ftplugin/<filetype>.vim
に書くことでFileTypeごとの設定を記述できる.
setnoexpandtabsettabstop=4setshiftwidth=4
便利コマンド
※ 注意: $GOROOT/misc/vim
は消滅したらしい(参考: vim-jp » vim-go-extra を公開致します。)
ここではgoogle/vim-ft-go
(Vimに取り込まれてる)と$GOROOT/misc/vim
の差分になるvim-jp/vim-go-extraを導入する.
(c.f. faith/vim-go: たぶんこっちのが高機能です.お好みでどうぞ.)
vim-ft-go
にはmisc/vim
の一部のみが含まれています。misc/vim
からは以下のコマンドが削除されました。
:Godoc
コマンド:Fmt
コマンド:Import
コマンドこれらのコマンドは Fatih Arslan 氏が提供する
vim-go
にコマンド名称を変えて含まれておりますが、vim-go
に含まれている syntax 等は vim のリポジトリに含まれている物と現在バッティングしています。 そこで vim-jp では上記の消えたコマンド群のみを集めたvim-go-extra
というリポジトリを提供する事にしました。
- vim-jp » vim-go-extra を公開致します。
NeoBundle 'vim-jp/vim-go-extra'
以下はvim-jp/vim-go-extra
の便利コマンド群.
:Godoc
パッケージとかのドキュメントを見れるgodoc
をVimから見れる.
:Fmt
Goのフォーマット整形ツールgo fmt
を実行する.
:Import
パッケージのimport
を挿入してくれる.
補完
gocodeをいれる.これだけ.
$ go get -u github.com/nsf/gocode
ググってみるとexe "set rtp+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim")
みたいなのを.vimrc
に追記してる記事が多いが,実は不要っぽい?(gocodeのREADMEにも書いてない)
構文チェック
NeoBundle 'scrooloose/syntastic'letg:syntastic_mode_map = { 'mode': 'passive',
\ 'active_filetypes': ['go'] }
letg:syntastic_go_checkers = ['go','golint']
保存時にgo
でのコンパイルエラーのチェック及びgolint
でのlintのエラーチェックが走る.
毎回入れるプラグインとか
それっぽいShellScriptをdotfilesに書く?(c.f. izumin5210/dotfiles).
もっといい方法あれば教えて下さい.
GOROOT
について(2015/04/14 18:15 追記)
@mattnさんからはてブでご指摘があった点になります.Twitter上で非常にわかりやすく丁寧に解説してくださいました.ありがとうございました!
GOROOT
must be set only when installing to a custom location. - Installing to a custom location | Getting Started - The Go Programming Language
@izumin5210 go のバイナリには GOROOT が埋め込まれていて、それと異なる場所に置く場合には必要になります。なので brew のインストール先に従うのであれば必要は無いです。brew の指定するロケーションが気に入らない場合は GOROOT で変更可能です。
— mattn (@mattn_jp) April 14, 2015
と,いうことで本記事の例だとGOROOT
は設定不要です.
@izumin5210異なるロケーションに複数入れる場合は必須になりますが、そうでない場合は必須ではないです。 http://t.co/KWkzDqxpO7 doc の Note: 部分を読んで下さい。
— mattn (@mattn_jp) April 14, 2015
Ref
- vim-jp » vim-go-extra を公開致します。
- formatting | Effective Go - The Go Programming Language
- WEB+DB PRESS Vol.82
- Installing to a custom location | Getting Started - The Go Programming Language(2015/04/14 18:15 追記)
- You don’t need to set GOROOT, really | Dave Cheney(2015/04/14 18:35 追記)