2013-11-23 76 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'。