Existe-t-il un moyen simple de fermer une fenêtre de tampon de travail / prévisualisation?

65

L'un des plugins que j'ai installés (probablement Supertab) fournit une bonne vue de la documentation pour l'élément en surbrillance dans le menu d'achèvement:

entrez la description de l'image ici

Le tampon de travail (apparemment) reste ouvert même après que je sors de l'achèvement (en appuyant sur Enterou Space). Ensuite, je le fais <c-w>↑:q, mais je trouve Ctrlextrêmement contraignant de faire pression (une des raisons pour lesquelles j’évite les scissions).

Quel est un moyen rapide de fermer ce tampon de travail? Existe-t-il une méthode native ou dois-je écrire un mapping?

muru
la source
2
Quelque chose qui pourrait rendre Ctrlmoins ennuyeux est reconfiguré Caps Lockpour Ctrlou les échanger si vous voulez garder Caps Lockdisponible.
8bittree
Quel plugin utilisez-vous pour compléter le code python? Par exemple jedi-vimavoir l'option g:jedi#auto_close_doc.
Alex Kroll
@ AlexKroll pour être honnête, je n'en ai aucune idée. Je pense que cela pourrait être Supertab. Voici les plugins que j'ai installés: github.com/murukeshm/vimrc/tree/master/bundle . Je n'ai pas installé Jedi.
muru
2
@muru g:SuperTabClosePreviewOnPopupClose (default 0)On dirait que c'est ce que vous voulez:he supertab-closepreviewonpopupclose
Alex Kroll
@ AlexKroll Oui, cela a fait l'affaire, merci!
Muru

Réponses:

66

La fenêtre du haut s'appelle la fenêtre de prévisualisation. Donc, n'importe lequel <c-w>z, <c-w><c-z>ou :pc[lose][!]devrait fonctionner.

Le ci-dessous est l'aide pour :help :pclose

CTRL-W z CTRL-W_z
CTRL-W CTRL-Z CTRL-W_CTRL-Z
: pc: pclose
: pc [perdre] [!] Fermez toutes les fenêtres "Aperçu" actuellement ouvertes. Quand le "caché"
                l’option est définie ou lorsque le tampon a été modifié et que [!] est
                utilisé, le tampon devient masqué (sauf s’il existe un autre
                fenêtre l’éditer). La commande échoue si un tampon "Aperçu"
                ne peut pas être fermé. Voir aussi: close.

Une autre page d’aide pertinente serait :help preview-window

FDinoff
la source
9
Yay pour :pc! Je n'avais pas réalisé que le nom "preview" était spécial.
Muru
29

Pour mon cas spécifique, la fenêtre de prévisualisation a été ouverte par les plugins. J'ai donc utilisé la configuration du plugin pour fermer automatiquement ces fenêtres.

Supertab

Comme suggéré par Alex Kroll:

let g:SuperTabClosePreviewOnPopupClose = 1

Tu me complètes

let g:ycm_autoclose_preview_window_after_insertion = 1
let g:ycm_autoclose_preview_window_after_completion = 1

Si la deuxième variable est définie, la première n'a aucun effet. De la docs:

The *g:ycm_autoclose_preview_window_after_completion* option

When this option is set to '1', YCM will auto-close the 'preview' window after
the user accepts the offered completion string. If there is no 'preview' window
triggered because there is no 'preview' string in 'completeopt', this option is
irrelevant. See the |g:ycm_add_preview_to_completeopt| option for more details.

Default: '0'
>
  let g:ycm_autoclose_preview_window_after_completion = 0
<
-------------------------------------------------------------------------------
The *g:ycm_autoclose_preview_window_after_insertion* option

When this option is set to '1', YCM will auto-close the 'preview' window after
the user leaves insert mode. This option is irrelevant if
|g:ycm_autoclose_preview_window_after_completion| is set or if no 'preview'
window is triggered. See the |g:ycm_add_preview_to_completeopt| option for more
details.

Default: '0'
>
  let g:ycm_autoclose_preview_window_after_insertion = 0
muru
la source
4

Une autre option intéressante, pertinente également dans d’autres cas, consiste :onlyà fermer toutes les autres fenêtres, y compris l’aperçu:

:on[ly][!]
:{count}on[ly][!]
CTRL-W o                        *CTRL-W_o* *E445*
CTRL-W CTRL-O                   *CTRL-W_CTRL-O* *:on* *:only*
    Make the current window the only one on the screen. All other
    windows are closed. For {count} see |:quit|.
Béka
la source
3

Une autre option qui ferme automatiquement la fenêtre de prévisualisation et qui devrait fonctionner avec plusieurs plugins d'achèvement a été suggérée par l'auteur de deoplete dans un problème :

autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif

L'inconvénient est que vous ne pourrez pas focaliser la fenêtre de travail, donc pas de défilement. Mais pour les recherches rapides, c'est le plus pratique.

mort
la source
0

Jedi

si vous n'utilisez pas avec YCM

let g:jedi#auto_close_doc = 0  " close preview window after completion
Mesco
la source
0

Vous pouvez utiliser ce plugin: bufutils.vim

Il ferme les tampons de travail, la liste des localisations, la liste des erreurs, etc.

Weima
la source