2013-11-23 108 views
7

我使用https://github.com/nsf/gocodehttps://github.com/Shougo/neocomplete.vim一起用于我的Go自动完成。Golang Vim自动完成提示

它工作得很好,除了一件小事。当我键入类似 fmt.pri 我提供自动选项,如下所示:

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

由于我是新来走,这是超级有帮助的,因为现在我知道的方法需要什么样的参数,有什么类型,还有它返回的是什么。 不幸的是,一旦我写出过去的括号,信息就消失了。 fmt.Println(

因此,对于我第一次使用的更复杂的方法,我卡住了,必须跳转到源代码定义或运行godoc。

将信息放在某处,最好在Vim的底部,其中命令/状态行是。

有谁知道如何能够实现这样的事情?

编辑:预览窗口打破了我的Vim所以它不是一个选项。

+0

我不知道Vim插件会做你想做的事(我不知道它不存在,但是),但这样的事情在技术上是可行的。 [python-mode](https://github.com/klen/python-mode)有一个类似的功能,它打开一个小的拆分窗口并显示这样的API文档。如果你觉得冒险,你可以把它看作是一个模型,并试图实现它。 –

+1

当我第一次安装gocode时,它完全按照你的建议做了:它用函数的原型打开了一个小窗口。不幸的是,它也搞乱了其他的东西,所以我不得不用“set completeopt- = preview”来关闭这个功能。也许尝试打开它? –

回答

1

我使用autocomplpop(嗯,my fork of it),它有一个功能,它做一个小的拆分窗口,其中的完成文本在其中。当你设置...

let g:acp_completeoptPreview = 1 

我相信neocomplcache有一个相似的功能。通过浏览文档,它讨论了几个地方的预览窗口。在其文档中搜索预览并查看您可以找到的内容。

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