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
gocodeshould 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を追記したところ期待する動作をするようになった。