我正在使用omnifunc=pythoncomplete
. 当自动完成一个单词(例如,os.<something>
)时,我得到了符合条件的类成员和函数的列表,正如预期的那样,以及一个包含有关所选成员或函数的文档的暂存缓冲区预览窗口。这很好,但是在选择了我想要的功能后,预览窗口仍然存在。
我可以用 摆脱它 :pc
,但我希望它在我选择了我的功能后自动消失,就像 Eclipse。我玩过completeopt
但无济于事。
我正在使用omnifunc=pythoncomplete
. 当自动完成一个单词(例如,os.<something>
)时,我得到了符合条件的类成员和函数的列表,正如预期的那样,以及一个包含有关所选成员或函数的文档的暂存缓冲区预览窗口。这很好,但是在选择了我想要的功能后,预览窗口仍然存在。
我可以用 摆脱它 :pc
,但我希望它在我选择了我的功能后自动消失,就像 Eclipse。我玩过completeopt
但无济于事。
将以下内容放入您的 vimrc 中:
" If you prefer the Omni-Completion tip window to close when a selection is
" made, these lines close it on movement in insert mode or when leaving
" insert mode
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
即使已经有一个公认的答案,我还是直接从文档中找到了这个答案,该答案适用于任何有此问题的插件。
autocmd CompleteDone * pclose
如果您安装了 supertab 插件,则有一个名为supertab-closepreviewonpopupclose
.
将以下内容放入您的 .vimrc 中:
let g:SuperTabClosePreviewOnPopupClose = 1
我不知道如何自动关闭它,但你可以输入
:关闭
手动关闭草稿预览。
我知道这个问题已经很老了,但是在寻找“干净”解决方案几天后,我刚刚找到了完成这项工作的 CompleteDone 自动功能:
au CompleteDone * pclose
您可以输入以下映射以使某些键尝试关闭预览窗口。
inoremap <space> <C-O>:wincmd z<CR><space>
inoremap ( <C-O>:wincmd z<CR>(
inoremap ) <C-O>:wincmd z<CR>)
inoremap , <C-O>:wincmd z<CR>,
inoremap <CR> <C-O>:wincmd z<CR><CR>
inoremap <esc> <esc>:wincmd z<CR>
在插入模式下完成后,您还可以使用自动命令关闭预览窗口:
augroup GoAwayPreviewWindow
autocmd! InsertLeave * wincmd z
augroup end
您可以在中键入.vimrc
:
set completeopt-=preview