近頃、vscodeが楽で便利すぎてvimを触る頻度が減ってしまっていたのですが、vimによるgoの開発環境を設定しようと思い立って設定してみました。
基本的にはmattnさんの以下の記事に従いました。
(1) Big Sky :: Vim で Go 言語を書くために行った引越し作業 2020年度版
(2) Big Sky :: Vim をモダンな IDE に変える LSP の設定
(1)の内容だと、コード補完が効いたり効かなかったりしたので、(2)に記述のある以下の設定があると良いようです。vim-lspのdocumentにも記述があります。
function!s:on_lsp_buffer_enabled() abort
setlocal omnifunc=lsp#complete
setlocal signcolumn=yes
nmap <buffer> gd <plug>(lsp-definition)
nmap <buffer><f2><plug>(lsp-rename)endfunction
augroup lsp_install
au!
autocmd User lsp_buffer_enabled calls:on_lsp_buffer_enabled()
augroup END
手元にあるMac(8.2.1250)だと上記設定を加えることで補完が動きましたが、ubuntu(8.1.1401)だと動きませんでした。
そこで、ubuntuでvimの最新版(8.2.1303)をbuildしたら補完されるようになったので、困ったら上記を追記&最新版をinstallするといいのかもしれません。
参考までに自分の今のvimrcをおいておきます。
https://gist.github.com/sodefrin/7e89e77904898fa5872ab8b06ddc2e84