Go の Vim プラグインを vim-go に切り替えた

Vim で Go のコードを書いていて、エディタ内からお手軽にカバレッジ取れたらいいなと思って調べていたら、オフィシャルの Go の Vim プラグインではなく vim-go を使えばできそうだということがわかったので、切り替えることにした

まずは

" Set golang vim scripts
exe 'set runtimepath+='.substitute(system('brew --prefix go'), '\n', '', 'g').'/libexec/misc/vim'

として読み込んでいたオフィシャルプラグインを外して、自分の環境ではプラグイン管理に NeoBundle を使っているので

NeoBundleLazy 'fatih/vim-go', {
       \ 'depends' : 'majutsushi/tagbar',
       \ 'autoload' : {
       \   'filetypes' : 'go',
       \   'commands' : ['GoInstallBinaries', 'GoUpdateBinaries'],
       \ }}

" vim-go "{{{
let bundle = neobundle#get('vim-go')
function! bundle.hooks.on_source(bundle)
       let g:go_fmt_autosave = 0
       let g:go_fmt_fail_silently = 1
endfunction
"}}}

のように設定してみた。 Tagbar を使っている場合は depends に一緒に読み込む設定を書いておくことで、 gotags を使ったアウトライン表示ができる。また、当初の目的だったカバレッジ取得は、 :GoCoverage を実行すれば自動的にウェブブラウザが開いて結果を表示してくれるようになっている

他にも支援プログラムを使った各種機能が盛りだくさんで、仮にそれらに必要なソフトウェアがインストールされていない場合は :GoInstallBinaries を実行すれば、内部的に go get して必要なパッケージを拾ってきてインストールしてくれる。それらの一括更新も :GoUpdateBinaries で実行できて便利

これでちょっとばかり Go を書く環境がリッチになったので、しばらく使い込んでみたい