Frage Wie tauscht man zwei Bereiche in Tmux?


Ich habe zwei Scheiben in horizontaler Teilung. Ich hätte gerne den Bereich rechts, der sich im Fenster links befindet. Ich spreche nicht über das Verschieben des Fokus (Strg+B  O). Wie erreiche ich das?

'linker Bereich' <-> 'rechter Bereich'


144
2018-02-17 22:27


Ursprung




Antworten:


Das swap-pane Befehl kann das für Sie tun. Das { und } Schlüssel sind gebunden swap-pane -U und swap-pane -D in der Standardkonfiguration.

Also, um Ihre gewünschte Änderung zu bewirken, können Sie wahrscheinlich verwenden Präfix  { Wenn Sie sich im rechten Bereich befinden (oder Präfix  } wenn Sie im linken Bereich sind).

Das -U und -D beziehen Sie sich auf "oben" und "unten" in der Fensterindexreihenfolge ("oben" ist die gleiche Richtung, die Präfix  O bewegt sich über die Fenster). Sie können die Fensterindizes mit anzeigen display-panes (Präfix  q, standardmäßig).


208
2018-02-18 08:27



+1 für die Angabe Prefix anstatt davon auszugehen, dass jeder es benutzen wird Ctrl-b - Aaron Wallentine
Einverstanden. Es ist noch schlimmer, wenn Leute annehmen, dass Sie verwenden Ctrl-a, da sie die Leute sind, die wissen, dass das Präfix geändert werden kann, um dem Benutzer zu entsprechen. - Brandon Ibbotson


Sie können treffen Strg  b und halte weiter Strg beim Schlagen O. Dadurch werden alle vorhandenen Fenster umhergedreht, sodass in Ihrem Fall nur die beiden vorhandenen Fenster ausgetauscht werden.

Strg  b + Alt  O rotiert den umgekehrten Weg (nützlich, wenn Sie mehr als zwei Fenster haben).


37
2018-01-02 10:28



Ich kann das nicht bekommen - wenn ich Strg + b und dann o drücke, bekomme ich eine Fensterscheibe, aber dann geht der Fokus zurück zum aktuellen Fenster. Ich kann nicht durch die Scheiben radeln, ohne wiederholt die ganze Sequenz von Strg + b, Strg + o zu treffen. Es ist irgendwie langweilig. Weißt du, warum das passieren könnte? - Stabledog
@Stabledog Nicht sicher ... Nur um das erwartete Verhalten zu verdeutlichen: Während des Haltens Ctrl, schlagen bo wiederholt werden die Scheiben zyklisch durchlaufen. Der Cursor sollte an der gleichen Stelle bleiben, d. H. Nicht den Scheiben folgen, sondern in dem neuen Fenster, das in die Position gedreht wird, in der sich der Cursor befindet. - Joel Ostblom
Ja, wir sind auf der gleichen Seite. Aber nach dem ersten 'o', das eine Fensterrotation verursacht, wird das nächste 'o' an die zugrundeliegende Shell gesendet und von welcher App auch immer dort bearbeitet. Ich denke etwas fischiges mit meiner Karte, oder vielleicht etwas, das von der tmux Version abhängig ist. Danke für die Antwort. - Stabledog
@Stabledog Ich bin momentan auf tmux 2.3, aber ich denke, das hat immer für mich funktioniert ... Ich kann mir nicht wirklich vorstellen, was das Problem sein könnte. Es klingt seltsam, dass die Ctrl+owird an die Shell gesendet, statt an tmux, vor allem, wenn dies beim wiederholten Drücken nicht der Fall ist Ctrl+b (oder andere tmux-Befehle?). - Joel Ostblom
@Stabledog Eigentlich habe ich gerade gemerkt, dass der einzige andere Befehl, bei dem ich die Kontrolle halten und die anderen Tasten wiederholen kann, ist Ctrl+b;, der den Cursor zwischen zwei Fenstern dreht. - Joel Ostblom


Die präziseste Kontrolle, die Sie haben können, besteht darin, den Befehl zu verwenden swap-pane  direkt. Das ist nicht so schwer zu tun:

  1. ctrl-b q zeigt Ihnen die "ID" für jedes Fenster im aktuellen Fenster an - denken Sie an die beiden Fenster, die Sie tauschen möchten. Sagen wir, sie sind 3 und 5.
  2. ctrl-b : um die tmux-Befehlszeile zu aktivieren. Dann geben Sie den Befehl aus swap-pane -s 3 -t 5.

Beachten Sie, dass Sie bei der Eingabe von Befehlen eine automatische Vervollständigung haben. Sie können auch direkt nach der Syntax eines Befehls suchen tmux manpage. So lerne ich die Syntax für swap-pane.


5
2018-03-21 18:50