whileD'iary

日記とか

NeovimでGo言語を快適に書きたい

最近Go言語を触り始めました。最初はvscodeとかatomを試してたんですけどなんかしっくりこなかったのでvimを使おうと思った。 でもvimも完全に「画面分割ができるメモ帳」のような使い方をしていたので、どうせならとneovimに移行した。移行というのも怪しいが。

Neovimを入れる

導入からinit.vimとかdein、deopleteなどのプラグインの設定はこちらを参考にしました。

qiita.com

Go用のプラグインを入れる

GitHub - fatih/vim-go: Go development plugin for Vim

GitHub - zchee/deoplete-go: deoplete.nvim source for Go

とか入れると良さそうだったのでこの2つを入れた。 下のようにgo.tomlとか作って{lazy : 1}で読み込んだ。 間違ってなければ多分これでgoファイルじゃないときはプラグインは読み込まれない。

#go.toml
[[plugins]] 
repo = 'fatih/vim-go'
on_ft = 'go'

[[plugins]]
repo = 'zchee/deoplete-go'
build = 'make'
on_ft = 'go'
depends = ['deoplete.nvim']
hook_source = '''
    let g:deoplete#sources#go#gocode_binary = $GOPATH . '/bin/gocode'
'''

あと、deoplete-goのREADMEにも書いてあったけどgocode_binaryでgocodeのバイナリーのパスを設定しなければならなと動かない。なんでかわからないけど見落としてて最初「なんで動かんの……」って焦ってた。

go get -u github.com/nsf/gocode

まとめ

まだまだ使い始めたばかりですが、:wするだけでgo fmtを走らせてくれたりtestするとQuickfixリストを出してくれたり、とてもいいです。