Vim自动完成提示Go语言的方法

8
我使用https://github.com/nsf/gocodehttps://github.com/Shougo/neocomplete.vim来进行Go自动补全,效果非常好,但有一个小问题。当我输入像fmt.pri这样的内容时,会出现自动补全选项:

fmt.Println(a ...interface{}) (n int, err error)

由于我刚学习Go,这对我非常有帮助,因为现在我知道了该方法需要哪些参数、它们的类型以及返回值是什么。不幸的是,一旦我写完括号,这些信息就消失了。

fmt.Println(

所以在我第一次使用更复杂的方法时,我会卡住,必须跳转到源定义或运行godoc。

最好能够在Vim底部的命令/状态行下方某个地方提供这些信息,这样会更容易一些。有人知道如何实现这样的功能吗?

预览窗口会破坏我的Vim,所以不是一个选择。


我不知道是否有Vim插件可以做到你想要的(我也不知道它不存在),但从技术上讲,这是可能的。python-mode 有一个类似的功能,它会打开一个小的分割窗口,并显示API文档。如果你感到冒险,你可以把它作为模型并尝试实现它。 - Jim Stewart
1
当我第一次安装gocode时,它确实做到了你所建议的:它打开了一个显示函数原型的小窗口。不幸的是,它也搞乱了其他一些东西,所以我不得不通过“set completeopt-=preview”关闭这个功能。也许你可以试试开启它? - Lawrence Kesteloot
1个回答

1
我使用 autocomplpop (或者 我的分支),它有一个小窗口的功能,可以在其中显示补全文本,并保持固定。当你设置时,它会这样做...
let g:acp_completeoptPreview = 1

我相信neocomplcache有类似的功能。浏览其文档,它在多个位置讨论预览窗口。在其文档中搜索预览并查看您可以找到什么。

这最终由'completeopt'控制,包含'preview' (:h completeopt)。自动完成包通常作为其功能的一部分设置这些值,这就是为什么使用autocomplpop时需要使用其选项来控制它,而不仅仅是执行'completeopt+=preview'。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接