Vim mehrere Fenster / verstecken

9

Wenn in einer VIM-Sitzung x oder mehr Fenster geöffnet waren und ich alle für einen Moment schnell alle außer dem aktiven ausblenden wollte, dann die Fenster wieder in das Layout zurückversetzen, in dem ich sie hatte. Wie würde ich das tun?

MageProspero
quelle
Das zoomwin Plugin macht das.
Stabledog

Antworten:

7

In Vim 7 und höher können Sie hierfür eine „Registerkarte“ verwenden (dh eine Registerkarte im GUI-Stil). Sie können den :tabBefehl entweder mit :splitoder verwenden :sbuffer:

:tab split
:tab sp      " shorter version

:tab sbuffer
:tab sb      " shorter version

Beides splitund sbufferfast dasselbe, wenn es ohne zusätzliche Argumente verwendet wird (teilen Sie den aktuellen Puffer auf). Sie werden es wahrscheinlich verwenden wollen, splitwenn Sie einen (möglicherweise noch nicht geladenen) Pfadnamen laden möchten ( split path/to/some/fileobwohl Sie dies :tabestattdessen verwenden könnten, da dies im Zusammenhang mit dem Öffnen eines neuen Tabs steht). sbuffererleichtert das Wechseln zu einem vorhandenen Puffer ( sb {bufnum}oder sb {bufname}).

Sobald Sie Ihren neuen Tab geöffnet haben, können Sie verwenden , gTund gtzwischen dem resultierend Tabs zu wechseln (oder den GUI - Controls , wenn Sie eine GUI - Version von Vim verwenden). Wenn Sie mit der Registerkarte "Einzelfenster" fertig sind, schließen Sie einfach :qdas Fenster (und damit die Registerkarte) und kehren zu Ihrer ursprünglichen Registerkarte (mit dem ursprünglichen Fensterlayout) zurück oder verwenden Sie :tabclose( :tabc) oder wechseln Sie zurück zu Ihrer ursprünglichen Registerkarte und verwenden Sie :tabonly( :tabo).

Chris Johnsen
quelle
10

Ich verwende STRG-W _, um die anderen Fenster horizontal aus dem Weg zu "schieben", sodass das aktuelle Fenster auf den größten verfügbaren Bereich erweitert wird. Verwenden Sie STRG-W | das gleiche vertikal zu tun. Ich bin mir sicher, dass es wahrscheinlich eine Möglichkeit gibt, beides gleichzeitig zu tun, aber ich habe es nicht bemerkt oder danach gesucht. Schauen Sie rein: helfen Sie STRG-W

Um sie wiederherzustellen, drücken Sie STRG-W =. Eine Einschränkung ist jedoch, dass sie nicht in ihrer ursprünglichen Konfiguration wiederhergestellt werden. STRG-W = berechnet tatsächlich die beste Anpassung für alle Fenster auf dem Bildschirm neu.

frogstarr78
quelle
Überprüfen Sie, ob es sich um einen ordentlichen Hack handelt.
MageProspero
7

Soweit ich weiß, gibt es keine Möglichkeit, einfach zwischen zwei verschiedenen Fensterlayouts zu wechseln, aber Sie können alle anderen Fenster ausblenden, indem Sie den Befehl :only(oder :on) eingeben . Weitere Informationen zu diesem Befehl finden Sie in der Vim-Hilfe .

Kusalananda
quelle
2
Es ist nicht möglich, damit zum vorherigen Layout zurückzukehren. Die Antwort von Chris Johnsen lässt uns das auch tun.
Phani