Golangには、まだ標準で依存性管理のツールが含まれていません。
1.5からは実験的機能としてvendoringが入ったようですが、今のところは様子っぽいかなーとおもっています。
というわけで、godepとか色々あるわけですが、僕はGemfileライクでシンプルなgomを愛用してます。
gomの仕組みとしては、プロジェクトルートに_vendor
を掘ってそこに外部モジュールを投げ込み、動的に$GOPATH
を設定するというような感じになってます。
ということは、普通にvimを起動した場合は環境変数にgom用のGOPATHが設定されないわけで、Vimからのmake時やgocodeによる補完時に必要とされるサードパーティを見つけることができません。
これは微妙に不便なので、Vim上から設定できるようにします。
当初vimrcに直接書いていたんですが、gomリポジトリにはVimのプラグインなどを入れるためのmiscがあるっぽかったのでプルリクエストを送ったところ取り込んでいただけました。
なのでランタイムパスに当該ディレクトリを追加したのち、SetGomEnv
というコマンドを呼び出せば $GOPATH
がgom管理下のものに書き換わります。
set rtp+=/path/to/go/src/github.com/mattn/gom/misc/vim autocmd Filetype go SetGomEnv
(たぶん)これでオッケーなはずです。気になる方は.vim/plugin/
以下にコピーしてきてもいいかもですね。
ついでにftdetect
も追加されるのでGemfile形式としてfiletypeが認識されるとおもいます。
高速なオムニ補完がバリバリと聞くGolang + Vim + gocodeの組み合わせは快適でよいですね。
先のことはわかりませんが、gocodeの対応の問題とかもあるので、当面はgomを使い続けるのが色々と快適なのかなーとおもいました。
余談
間違って覚えたVim scriptイディオムを使ってたり、シェルスクリプトワンライナーに頼ってWindows環境で動作しないコードになっていたりとVim script力のアレさを感じたのでVim scriptテクニックバイブルをもう一度読み直そうとおもいました。
さらにrebase -i
したブランチをpush -f
してレビューコメントをふっ飛ばしたりしたのでもうちょっとGithub力を上げる必要があるとか、たった十数行の(しかもツールそのものの機能には関係ない)コードなのに色々と反省することの多いPRになってしまいました。
Vim script テクニックバイブル ~Vim使いの魔法の杖
- 作者: Vim scriptサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2014/08/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る