Gibt es eine einfache Möglichkeit, ein Scratch Buffer / Preview-Fenster zu schließen?

65

Eines der von mir installierten Plugins (wahrscheinlich Supertab) bietet eine schöne Ansicht der Dokumentation für das aktuell hervorgehobene Element im Abschlussmenü:

Bildbeschreibung hier eingeben

Der (scheinbar) Arbeitsspeicher bleibt geöffnet, auch wenn ich die Fertigstellung beende (durch Drücken von Enteroder Space). Dann mache ich es <c-w>↑:q, um es zu beenden , aber ich finde es Ctrlextrem ärgerlich , drücken zu müssen (ein Grund, warum ich Spaltungen vermeide).

Wie kann dieser Arbeitspuffer schnell geschlossen werden? Gibt es einen nativen Weg oder muss ich ein Mapping schreiben?

muru
quelle
2
Etwas , das machen könnte Ctrlweniger ärgerlich kartiert Caps Lockauf Ctrloder tauschen Sie sie , wenn Sie behalten möchten , zur Caps LockVerfügung.
8bittree,
Welches Plugin benutzt du für Python-Code komplett? Zum Beispiel jedi-vimhaben Option g:jedi#auto_close_doc.
Alex Kroll
@AlexKroll Ehrlich gesagt habe ich keine Ahnung. Ich denke, es könnte Supertab sein. Dies sind die Plugins, die ich installiert habe: github.com/murukeshm/vimrc/tree/master/bundle . Ich habe keine Jedi installiert.
muru
2
@muru g:SuperTabClosePreviewOnPopupClose (default 0)Sieht aus wie es ist, was Sie wollen:he supertab-closepreviewonpopupclose
Alex Kroll
@AlexKroll Ja, das hat den Trick gemacht, danke!
muru

Antworten:

66

Das obere Fenster wird als Vorschaufenster bezeichnet. Also irgendetwas von <c-w>z, <c-w><c-z>oder :pc[lose][!]sollte funktionieren.

Das Folgende ist die Hilfe für :help :pclose

STRG-W z STRG-W_z
STRG-W STRG-Z STRG-W_CTRL-Z
: pc: pclose
: pc [verlieren] [!] Schließt ein "Vorschau" -Fenster, das gerade geöffnet ist. Wenn die "versteckten"
                Option ist gesetzt, oder wenn der Puffer geändert wurde und das [!] ist
                verwendet wird, wird der Puffer ausgeblendet (es sei denn, es gibt einen anderen
                Fenster bearbeiten). Der Befehl schlägt fehl, wenn ein "Vorschau" -Puffer vorhanden ist
                kann nicht geschlossen werden. Siehe auch: schließen.

Eine andere relevante Hilfeseite wäre :help preview-window

FDinoff
quelle
9
Ja für :pc! Ich wusste nicht, dass der Name "Vorschau" etwas Besonderes ist.
muru
29

Für meinen speziellen Fall wurde das Vorschaufenster von Plugins geöffnet. Also habe ich die Plugin-Konfiguration verwendet, um diese Fenster automatisch zu schließen.

Supertab

Wie von Alex Kroll vorgeschlagen:

let g:SuperTabClosePreviewOnPopupClose = 1

Du vervollständigst mich

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

Wenn die zweite Variable gesetzt ist, hat die erste keine Auswirkung. Aus den Dokumenten:

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
quelle
4

Eine andere nette Option, die auch in anderen Fällen relevant ist, ist :onlydas Schließen aller anderen Fenster, einschließlich der Vorschau:

: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|.
Beka
quelle
3

Eine andere Option, die das Vorschaufenster automatisch schließt und mit mehreren Vervollständigungs-Plugins funktionieren sollte, wurde von deopletes Autor in einer Ausgabe vorgeschlagen :

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

Der Nachteil ist, dass Sie das Scratch-Fenster nicht fokussieren können und daher nicht scrollen müssen. Für eine schnelle Suche ist dies jedoch am bequemsten.

lleaff
quelle
0

Jedi

wenn nicht mit YCM

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

Sie können dieses Plugin verwenden: bufutils.vim

Es schließt Arbeitspuffer, Standortliste, Fehlerliste, etc ...

Weima
quelle