我最近使用病原体安装了vim-go,但自动完成功能无效。如果我使用它只显示我已经使用过的命令。 我的.vimrc有
filetype plugin on
" Enable autocompletion
set omnifunc=syntaxcomplete#Complete
" Select keyword as you type
:set completeopt=longest,menuone
我需要的不仅仅是这个插件吗?我到目前为止测试的另一个功能是工作(:GoRun,语法高亮)。 这是在Ubuntu机器上。
答案 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以打开自动完成窗口?这对我来说很好。
另一方面,如果您想获得实时完成(按类型完成),请安装以下插件YCM
或neocomplete
答案 2 :(得分:0)
如果这些建议都不能解决您的问题,请尝试从终端杀死gocode:
gocode exit (or killall gocode it that fails)
gocode -s -debug
如果由于unix套接字缠结而导致启动失败,只需将其卸下并重试。一切正常后,您可以终止启用调试的gocode流程(插件将根据需要自动启动)
答案 3 :(得分:0)