在Vim自动完成后,如何自动删除预览窗口?
我正在使用omnifunc=pythoncomplete
。 当自动完成一个单词(例如, os.<something>
)时,我会得到符合条件的类成员和函数列表,以及一个带有关于所选成员或函数的文档的暂存缓冲区预览窗口。 这很好,但是在select了我想要的function之后,预览窗口仍然存在。
我可以用:pc
来摆脱它,但是我希望它只是在我select了我的function,Eclipse后自动消失。 我已经玩完了,但无济于事。
在你的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
即使已经有一个被接受的答案,我直接从文档中find了这个问题的任何插件。
autocmd CompleteDone * pclose
如果安装了supertab插件,则有一个选项,称为supertab-closepreviewonpopupclose
。
将以下内容放在.vimrc中:
let g:SuperTabClosePreviewOnPopupClose = 1
我不知道如何自动closures它,但是你可以input
:函数,pclose
手动closures临时预览。
我知道这个问题是非常古老的,但在寻找一个“干净的”解决scheme的几天后,我发现完成这项工作的CompleteDone自动function:
au CompleteDone * pclose
您可以引用以下映射以使某些键试图closures预览窗口。
inoremap <space> <CO>:wincmd z<CR><space> inoremap ( <CO>:wincmd z<CR>( inoremap ) <CO>:wincmd z<CR>) inoremap , <CO>:wincmd z<CR>, inoremap <CR> <CO>:wincmd z<CR><CR> inoremap <esc> <esc>:wincmd z<CR>
在插入模式下完成后,还可以使用自动命令来closures预览窗口:
augroup GoAwayPreviewWindow autocmd! InsertLeave * wincmd z augroup end
你可以在.vimrc
:
set completeopt-=preview