Ich habe meine Fenster horizontal geteilt. Wie kann ich jetzt wieder in den normalen Modus zurückkehren, d. H. Kein geteiltes Fenster, sondern nur ein Fenster, ohne alle geöffneten Fenster zu löschen. Ich habe 5 und möchte nicht "beenden", möchte nur das Split-Fenster verlassen.
Drücken Sie Control+w, dann drück q jedes Fenster zu einem Zeitpunkt zu schließen.
pdate: Betrachten Sie auch die Antwort von eckes, die für Sie möglicherweise nützlicher ist, einschließlich :on
(siehe unten), wenn Sie nicht ein Fenster nach dem anderen ausführen möchten.
Um alle Teilungen zu schließen, setze ich normalerweise den Cursor in das Fenster, das auf - nur sichtbar sein soll, und :on
, wodurch das aktuelle Fenster zum am - nur sichtbaren Fenster. Nizza Gedächtnisstütze zu erinnern.
Bearbeiten: :help :on
hat mir gezeigt, dass diese Befehle identisch sind:
:on
:only
Jedes dieser vier Fenster schließt alle Fenster mit Ausnahme des aktiven Fensters.
um alle Fenster außer dem aktuellen Fenster zu schließen, verwenden Sie:
CTRL+w, o
Das ist zuerst CTRL+w und dann o.
Zwei Alternativen zum Schließen des aktuellen Fensters sind ZZ
und ZQ
, mit denen Änderungen im angezeigten Puffer gespeichert bzw. nicht gespeichert werden.
Der Befehl: hide blendet das aktuell fokussierte Fenster aus. Ich denke, das ist die Funktionalität, nach der Sie suchen.
Um zwischen den Fenstern zu navigieren, geben Sie Strg + w gefolgt von einer Navigationstaste (h, j, k, l oder Pfeiltasten) ein.
Für weitere Informationen führen Sie :help window
und :help hide
in vim aus.
Genau wie die anderen sagten, ist der Weg, dies zu tun, zu drücken ctrl+w und dann o. Dadurch wird das aktuelle Fenster "maximiert", während die anderen Fenster geschlossen werden. Wenn Sie es "unmaximieren" möchten, gibt es dafür ein Plugin namens ZoomWin . Andernfalls müssten Sie das Fenster-Setup von Grund auf neu erstellen.
Ich habe das gefunden ctrl + w zu dem Fenster, das Sie schließen möchten, dann machen Sie einfach :q. Das funktioniert bei mir.
Ich verstehe Ihre Absicht gut, ich verwende auch ausschließlich Puffer und spalte gelegentlich, wenn nötig.
unten ist ein Auszug aus meinem .vimrc
" disable macro, since not used in 90+% use cases
map q <Nop>
" q, close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200 " let vim wait less for your typing!
Was gut zu meinem Workflow passt
Wenn
q
gedrückt wurde
- aktuelles Fenster ausblenden, wenn mehrere Fenster geöffnet sind, andernfalls versuchen Sie, vim zu beenden.
wenn
qo
gedrückt wurde,
- alle anderen Fenster schließen, kein Effekt, wenn nur ein Fenster.
Natürlich können Sie diesen unordentlichen Teil in eine Funktion einschließen , z
func! Hide_cur_window_or_quit_vim()
if winnr('$') > 1
hide
else
silent! exec 'q'
endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>
Sidenote : Ich ändere q
, da ich zum Bearbeiten kein Makro verwende, stattdessen :s
, :g
, :v
und ggf. einen externen Textverarbeitungsbefehl, z. B. :'{,'}!awk 'some_programm'
, oder :norm! normal-command-here
.
Aus :help opening-window
(Suche nach "Fenster schließen" - /Closing a window
)
:q[uit]
schließt das aktuelle Fenster und den Puffer. Wenn es das letzte Fenster ist, wird es auch vim verlassen:bd[elete]
entladen den aktuellen Puffer und schließt das aktuelle Fenster:qa[all]
oder :quita[ll]
schließt alle Puffer und Fenster und beendet vim (:qa!
, ohne Änderungen zu speichern):clo[se]
das aktuelle Fenster schließen, den Puffer aber offen lassen. Wenn es nur ein Fenster gibt, schlägt dieser Befehl fehl:hid[e]
den Puffer im aktuellen Fenster ausblenden (Lesen Sie mehr unter :help hidden
):on[ly]
schließt alle anderen Fenster, lässt aber alle Puffer offenOkay, ich habe mich gerade von der Bildschirmsitzung getrennt und wieder angeschlossen, und ich bin wieder auf dem normalen Bildschirm, den ich wollte