Tmux teilt ein übergeordnetes Fenster mit vorhandenen Fenstern

1

Nehmen wir an, ich habe ein Fenster mit zwei Fenstern (Größe irrelevant, 'A' = aktiv)

+-----+-----+
|     |  A  |
|     |     |
|     |     |
|     |     |
+-----+-----+

Wenn ich zu split-windowwäre, würde ich bekommen:

+-----+-----+
|     |  A  |
|     |     |
|     +-----+
|     |     |
+-----+-----+

Welches ist normalerweise in Ordnung. Aber kann ich festlegen, dass das übergeordnete Fenster anstelle des aktuellen Fensters geteilt wird? Z.B:

+-----+-----+
|     |  A  |
|     |     |
+-----+-----+
|           |
+-----------+
jgillman
quelle

Antworten:

2

Versuche dies: :splitw -v -f

Nach dieser Beschreibung:

Die Option -f erstellt einen neuen Bereich, der sich über die gesamte Fensterhöhe (mit -h) oder die gesamte Fensterbreite (mit -v) erstreckt, anstatt den aktiven Bereich zu teilen.

Ich denke, es ist immer noch nicht so vielseitig wie das "Parent-Panel" -Design, aber es wird viele weniger komplizierte Layouts leicht lösen.

Jason
quelle
Es spaltet effektiv den übergeordneten Bereich und ist somit vielseitig einsetzbar.
Matthäus
@ jgillman Dies sollte die richtige Antwort sein.
Chakrit
0

Originalantwort:
Der Befehl splitw unterstützt die Angabe eines Ziels.
Verwenden Sie -t, um einen Bereich anzugeben.

Strg-B: splitw -t 0

Eine sehr nützliche Randnotiz:

Strg-B q
hilft bei der Identifizierung des zu verwendenden Bereichs.

Möchten Sie dies häufig für denselben Bereich tun (z. B. für den Bereich mit der Nummer Null anstelle des "aktuellen Bereichs")? Erstellen Sie dann eine Tastaturbindung.

Erweiterung zur Beantwortung:
Im Folgenden wird das Layout erstellt, das von der ASCII-Grafik in der Frage angefordert wurde.

(1): Beginnen Sie mit einem brandneuen Fenster. Möglicherweise nicht unbedingt erforderlich, aber ich habe dies getan, um das Testen zu vereinfachen.
(2): Machen Sie eine vertikale Teilung (Strg-B: splitw -h)
(3): Optional, aber empfohlen: Tun Sie etwas in Bereich 1, damit der Bereich anders aussieht, nur damit Sie sehen können, dass dies wie beabsichtigt funktioniert. (4): drücke Strg-B
(5): Obwohl du einen Doppelpunkt benötigst, ist das Teil des folgenden Textes. Fügen Sie den folgenden Text ein.

: splitw -t 0; splitw -t 0 -h; selectp -t 1; Tauschscheibe -s 3; selectp -t 1; kill-pane -t 1

(6): Drücken Sie die Eingabetaste, um den zusammengesetzten Befehl auszuführen.

Hinweis (7): Die angezeigte Vorgehensweise hängt von bestimmten Fensternummern ab. Daher wird Schritt (1) dringend empfohlen. Ich sage nicht, dass diese Lösung für andere Layouts sehr anpassungsfähig ist, und daher kann eine harte Kodierung der Tastaturbindung in anderen Startsituationen zu unerwarteten Ergebnissen führen. In diesem Abschnitt wird jedoch gezeigt, wie Sie das tun, was speziell angefordert wurde. Dies ist daher möglicherweise eine nützliche Demonstration, wie Sie dies manuell tun können (was häufig hilfreich ist, wenn Sie einen automatisierten Ansatz für eine Aufgabe entwerfen).
Anmerkung (8): Ich bin ziemlich vorsichtig mit diesem Ansatz, insbesondere mit der Verwendung von Kill-Pane. Es scheint, dass dies leicht zu einem Arbeitsausfall führen kann, wenn etwas nicht wie erwartet funktioniert. Wenn Sie mutig genug sind, dies in eine Schlüsselbindung zu integrieren, sollten Sie die confirm-Anweisung verwenden, wie bei der Standardbindung für Strg-B x (angezeigt mit Strg-B?).

TOOGAM
quelle
Ich weiß Ihre Antwort zu schätzen, aber Ihre Beispiele werden nur den Bruch in meinem ersten Beispiel hervorrufen. Das heißt, es wird immer noch nur der Zielbereich geteilt, nicht das übergeordnete Fenster. Ich glaube nicht, dass es möglich ist, mit einer vorhandenen vertikalen Teilung so zu teilen, wie ich es angegeben habe.
jgillman
Rückmeldung erhalten. Details in der ASCII-Kunst wurden einfach nicht genug beachtet. Als Reaktion darauf wurde die ursprüngliche Antwort erheblich erweitert.
TOOGAM