自分用覚え書き程度ですが。
プラグインを入れる
使うのはvim-goとtagbarの2つ。
vim-goはgoのための色々な機能を提供してくれているので、これだけでもいいんだけどタグ表示もしたいのでtagbarも入れる。
これはおなじみのNeobundleのお世話になって
NeoBundle 'majutsushi/tagbar.git'
NeoBundle 'fatih/vim-go.git'
vim-goの設定
vim-goをインストールしたら
:GoInstallBinaries
としてあげると諸々入る。
個人的によく使うのは
- :GoRun
- :GoBuild
- :GoImport
- :GoImplements
- :GoDoc
- :GoTest
あたり。:GoFmtは保存するときに自動的に実行されるからあんまり気にしない。
よくつかうのはキーマップに割り当ててあげる。
autocmd FileType go nmap <Space>gr <Plug>(go-run)
autocmd FileType go nmap <Space>gb <Plug>(go-build)
autocmd FileType go nmap <Space>gt <Plug>(go-test)
autocmd FileType go nmap <Space>gc <Plug>(go-coverage)
autocmd FileType go nmap <Space>gd <Plug>(go-doc)
autocmd FileType go nmap <Space>gi <Plug>(go-import)
autocmd FileType go nmap <Space>gm <Plug>(go-implements)
あとはハイライトの設定で
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_functions = 1
let g:go_highlight_build_constraints = 1
タブ設定
goはハードタブを使うのがマナーらしいので
autocmd FileType go setlocal noexpandtab
autocmd FileType go setlocal tabstop=4
autocmd FileType go setlocal shiftwidth=4
Tagbarの設定
tagbarはtagの一覧を表示してくれるプラグイン。
vim-goがtagbarサポートも持っているので、特に固有設定しなくてよかったはず。
let g:tagbar_left = 0
let g:tagbar_autofocus = 1
としておくと、Tagbarを開くときに一覧が画面右側に表示されて、自動的にフォーカスがそちらに移るようになる。
タグ一覧が折りたたまれているときはoで開閉できる。
tagbarの表示/非表示切り替えは
:TagbarToggle
で出来るのでキーマップを割り当てておくのがいいかと。