it-swarm.com.de

Abbrechen des geteilten Fensters in Vim

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. 

190
Sudeep

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.

263
Warren P

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
  • CTRL-wCTRL-o
  • Und ja auch CTRL-Wo hat den gleichen Effekt (wie Nathanbeantwortet ).

Jedes dieser vier Fenster schließt alle Fenster mit Ausnahme des aktiven Fensters.

242
eckes

um alle Fenster außer dem aktuellen Fenster zu schließen, verwenden Sie:

CTRL+wo

Das ist zuerst CTRL+w und dann o.

53
Nathan Fellman

Zwei Alternativen zum Schließen des aktuellen Fensters sind ZZ und ZQ, mit denen Änderungen im angezeigten Puffer gespeichert bzw. nicht gespeichert werden. 

26
Benoit

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.

6
cledoux

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.

1
psyho

Ich habe das gefunden ctrl + w zu dem Fenster, das Sie schließen möchten, dann machen Sie einfach :q. Das funktioniert bei mir.

1
dmarges

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.

1
qeatzy

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 offen
0
chaptuck

Okay, ich habe mich gerade von der Bildschirmsitzung getrennt und wieder angeschlossen, und ich bin wieder auf dem normalen Bildschirm, den ich wollte

0
Sudeep