89 votes

Comment voulez-vous supprimer automatiquement la fenêtre d'aperçu après l'auto-complétion de Vim?

Je suis en utilisant omnifunc=pythoncomplete. Lorsque autocompleting un mot (par exemple, le système d'exploitation.), J'obtiens la liste des admissibles aux membres de la classe et les fonctions, comme prévu, ainsi que de se gratter tampon fenêtre d'aperçu de la documentation sur le membre sélectionné ou de la fonction. C'est super, mais après avoir sélectionné la fonction que je veux, la fenêtre de prévisualisation reste. Je peux me débarrasser de lui avec "pc", mais je tiens juste à disparaissent automatiquement après que j'ai sélectionné ma fonction, à la Eclipse. J'ai joué avec "completeopt", mais en vain.

104voto

gotgenes Points 8667

Placez le code suivant 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

69voto

Dan Bradbury Points 320

Même si il y a déjà accepté de répondre, j'ai trouvé ce directement à partir de la documentation qui va travailler pour n'importe quel plugin qui est d'avoir ce problème.

autocmd CompleteDone * pclose

18voto

Profpatsch Points 616

Si vous avez la superbalance plugin installé, il y a une option appelée supertab-closepreviewonpopupclose.

Placez le code suivant dans votre .vimrc:

let g:SuperTabClosePreviewOnPopupClose = 1

8voto

Lin Dong Points 68

Je ne sais pas comment fermer automatiquement, mais vous pouvez taper

:pclose

pour fermer l'aperçu de zéro manuellement.

1voto

too much php Points 27983

Vous pourriez jeter dans les mappages suivants pour avoir certaines touches essayez 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 autocommands pour fermer la fenêtre d'aperçu lorsque vous avez fini en mode insertion:

augroup GoAwayPreviewWindow
autocmd! InsertLeave * wincmd z
augroup end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X