Wie tauscht man in Tmux zwei Scheiben?

207

Ich habe zwei horizontal geteilte Fenster. Ich möchte, dass sich das Fenster derzeit rechts und links im Fenster befindet. Ich spreche nicht über das Verschieben des Fokus ( Ctrl+ B o). Wie erreiche ich das?

'linker Bereich' <-> 'rechter Bereich'

oddRaven
quelle

Antworten:

304

Der swap-paneBefehl kann dies für Sie tun. Die Tasten {und }sind an swap-pane -Uund swap-pane -Din der Standardkonfiguration gebunden .

Um Ihre gewünschte Änderung zu bewirken, können Sie wahrscheinlich verwenden, Prefix {wenn Sie sich im rechten Bereich befinden (oder Prefix }wenn Sie sich im linken Bereich befinden).

Das -Uund -Dbeziehen sich in der Fensterindexreihenfolge auf „Auf“ und „Ab“ („Auf“ ist die gleiche Richtung, die Prefix osich über Fenster bewegt). Sie können die Bereichsindizes mit display-panes( Prefix qstandardmäßig) anzeigen.

Chris Johnsen
quelle
8
+1 für die Angabe, Prefixanstatt davon auszugehen, dass jeder verwenden wirdCtrl-b
Aaron Wallentine
1
Einverstanden. Es ist noch schlimmer, wenn die Leute davon ausgehen, dass Sie verwenden Ctrl-a, da sie wissen, dass das Präfix an den Benutzer angepasst werden kann.
Bis zum
Siehe @ kays Antwort für eine allgemeinere Verwendung von swap-pane(und eine Antwort auf die Frage im Titel).
Jonathan
50

Sie können schlagen Ctrl bund gedrückt halten, Ctrlwährend Sie schlagen o. Dadurch werden alle vorhandenen Fenster gedreht, sodass in Ihrem Fall nur die beiden vorhandenen Fenster ausgetauscht werden.

Ctrl b+ Alt odreht sich in die entgegengesetzte Richtung (nützlich, wenn Sie mehr als zwei Fenster haben).

joelostblom
quelle
Ja, wir sind auf der gleichen Seite. Nach dem ersten 'o', das eine Scheibendrehung verursacht, wird das nächste 'o' an die zugrunde liegende Shell gesendet und von der App verarbeitet, die sich dort befindet. Ich denke etwas faul mit meiner Karte, oder vielleicht etwas, das von der tmux-Version abhängt. Danke für die Antwort.
Stabledog
1
@Stabledog Ich bin momentan auf tmux 2.3, aber ich denke, das hat immer bei mir funktioniert ... Ich kann mir nicht wirklich vorstellen, woran das liegen könnte. Klingt seltsam, dass das Ctrl+oan die Shell anstatt an tmux gesendet wird, besonders wenn dies nicht der Fall ist, wenn Sie wiederholt Ctrl+b(oder andere tmux-Befehle?) Drücken .
joelostblom
Eigentlich denke ich, dass es für alle Befehle geschieht. Zumindest ist mir kein Fall bekannt, in dem ich Strg + x drücken, eine Taste drücken, die mit einer bestimmten Operation verbunden ist, und im Modus "tmux keyboard" bleiben kann. Ich habe nur angenommen, dass dies beabsichtigt ist.
Stabledog
1
@Stabledog Eigentlich ist mir gerade aufgefallen, dass der einzige andere Befehl, bei dem ich die Kontrolle halten und die anderen Tasten wiederholen kann, darin besteht Ctrl+b;, den Cursor zwischen zwei Fenstern zu drehen.
joelostblom
24

Die genaueste Steuerung ist die swap-pane direkte Verwendung des Befehls . Dies ist nicht so schwer zu tun:

  1. ctrl-b qZeigt Ihnen die "ID" für jedes Fenster im aktuellen Fenster an - merken Sie sich die beiden Fenster, die Sie tauschen möchten. Nehmen wir an, sie sind 3 und 5.
  2. ctrl-b :um die tmux befehlszeile zu aktivieren. Dann Befehl ausgeben swap-pane -s 3 -t 5.

Beachten Sie, dass beim Eingeben von Befehlen die automatische Vervollständigung aktiviert ist. Sie können auch direkt in der tmux-Manpage nach der Syntax eines Befehls suchen . So lerne ich die Syntax für swap-pane.

Kay
quelle