vim-go自动完成无法正常工作

时间:2014-06-07 19:38:27

标签: vim autocomplete go

我最近使用病原体安装了vim-go,但自动完成功能无效。如果我使用它只显示我已经使用过的命令。 我的.vimrc有

filetype plugin on

" Enable autocompletion
set omnifunc=syntaxcomplete#Complete
" Select keyword as you type
:set completeopt=longest,menuone

我需要的不仅仅是这个插件吗?我到目前为止测试的另一个功能是工作(:GoRun,语法高亮)。 这是在Ubuntu机器上。

4 个答案:

答案 0 :(得分:5)

syntaxcomplete#Complete附带Vim,而不是Go文件类型插件,它的功能非常有限(基本上只提供语言的关键字)。难怪你很失望。

ftplugin/go.vim文件设置了vim-go插件的正确自定义完成:

setlocal omnifunc=go#complete#Complete

因此,请确保'filetype'设置正确(go),并且您没有任何其他配置会覆盖插件。

:verbose setlocal omnifunc?

可以告诉你。

答案 1 :(得分:4)

您是否正在键入C-X C-O以打开自动完成窗口?这对我来说很好。

另一方面,如果您想获得实时完成(按类型完成),请安装以下插件YCMneocomplete

答案 2 :(得分:0)

如果这些建议都不能解决您的问题,请尝试从终端杀死gocode:

gocode exit (or killall gocode it that fails)
gocode -s -debug

如果由于unix套接字缠结而导致启动失败,只需将其卸下并重试。一切正常后,您可以终止启用调试的gocode流程(插件将根据需要自动启动)

答案 3 :(得分:0)

这对我有用。默认的 gocode pkg 似乎不再维护。所以用下面的更新它。 我的 go 和 vim 版本:

VIM - Vi IMproved 8.2
go version go1.16.4 

请按照以下步骤操作:

gocode exit 
go get -u github.com/mdempsky/gocode

在调试模式下运行 gocode

gocode -s -debug

尝试自动完成。(vim-go C+X C+O)

中提琴!你应该看到这样的列表:

enter image description here