TL;DR
Add let g:go_gocode_unimported_packages = 1
to your .vimrc
欲求
通常、gocode ではインポートしていないパッケージの関数等は補完されない。
例えば、strings.Sp
と打ってstrings.Split()
が補完されるためには、import "strings"
が必要である。
これを修正するコミットが gocode に入っているため、有効にしたい。
試行錯誤
上記 Issue には、以下のコマンドを実行するように書かれている。
go get -u github.com/nsf/gocode gocode close gocode set unimported-packages true
ところが、これをやってもうまくいかない。
様子を観察してみると、gocode set unimported-packages true
を実行後に~/.config/gocode/config.json
内のunimported-packages
がtrue
になっているのがわかった。
しかし、何者かがこれを勝手にfalse
に変えてしまうため、このオプションが有効にならないようだ。
引き続き調べたところ、この挙動を引き起こしているのはvim-go
だと言うことがわかった。
Specifies whether
gocode
should include suggestions from unimported packages. By default it is disabled.
let g:go_gocode_unimported_packages = 0
.vimrc
にlet g:go_gocode_unimported_packages = 1
を追記したところ期待する動作をするようになった。