J'utilise omnifunc=pythoncomplete
. Lorsque vous remplissez automatiquement un mot (par exemple, os.<something>
), je reçois la liste des membres de classe et des fonctions éligibles, comme prévu, ainsi qu'une fenêtre d'aperçu du tampon de travail avec une documentation sur le membre ou la fonction sélectionné. C'est formidable, mais après avoir sélectionné la fonction que je veux, la fenêtre d'aperçu reste affichée.
Je peux m'en débarrasser avec :pc
, mais j'aimerais qu'il disparaisse automatiquement une fois ma fonction sélectionnée, à la mode Eclipse. J'ai joué avec completeopt
mais en vain.
Mettez ce qui suit dans votre 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
Même s'il existe déjà une réponse acceptée, je l'ai trouvée directement dans la documentation, ce qui fonctionnera pour tous les plug-ins présentant ce problème.
autocmd CompleteDone * pclose
Si vous avez le plugin supertab installé, il existe une option appelée supertab-closepreviewonpopupclose
.
Mettez ce qui suit dans votre .vimrc:
let g:SuperTabClosePreviewOnPopupClose = 1
Je ne sais pas comment le fermer automatiquement, mais vous pouvez taper
: pclose
pour fermer l'aperçu du scratch manuellement.
Je sais que cette question est très ancienne, mais après des jours de recherche d’une solution "propre", je viens de trouver la fonction automatique CompleteDone qui fait le travail:
au CompleteDone * pclose
Vous pouvez ajouter les mappages suivants pour que certaines clés tentent de fermer la fenêtre d'aperçu.
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>
Vous pouvez également utiliser des autocommandes pour fermer la fenêtre d’aperçu lorsque vous avez terminé en mode insertion:
augroup GoAwayPreviewWindow
autocmd! InsertLeave * wincmd z
augroup end
Vous pouvez taper cela dans le .vimrc
:
set completeopt-=preview