Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

【Go × Vim】 VimでGoを書く - 2015 Spring

$
0
0

快適に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ごとの設定を記述できる.

.vim/after/ftplugin/go.vim
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から見れる.
vim-go-godoc-demo.gif

:Fmt

Goのフォーマット整形ツールgo fmtを実行する.
vim-go-fmt-demo.gif

:Import

パッケージのimportを挿入してくれる.
vim-go-import-demo.gif

補完

gocodeをいれる.これだけ.

$ go get -u github.com/nsf/gocode

vim-go-gocode-demo.gif

ググってみるとexe "set rtp+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim")みたいなのを.vimrcに追記してる記事が多いが,実は不要っぽい?(gocodeのREADMEにも書いてない)

構文チェック

golintsyntasticを組み合わせる.

NeoBundle 'scrooloose/syntastic'letg:syntastic_mode_map = { 'mode': 'passive',
    \ 'active_filetypes': ['go'] }
letg:syntastic_go_checkers = ['go','golint']

保存時にgoでのコンパイルエラーのチェック及びgolintでのlintのエラーチェックが走る.

vim-go-lint-demo.gif

毎回入れるプラグインとか

それっぽい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

と,いうことで本記事の例だとGOROOTは設定不要です.

Ref

Vim plugins

Golang packages


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>