Eine typische Situation kann sein:
$ tmux
[0] $ ssh example.com
$ tmux attach
[0] $
Ich öffne eine tmux-Sitzung, ssh dann in einen Server und verbinde mich mit einer vorhandenen tmux-Sitzung. Zu diesem Zeitpunkt habe ich eine tmux-Sitzung in einer anderen. Wie sende ich Befehle an die innere tmux-Sitzung?
Hinweis: Beide tmux-Sitzungen haben die gleichen Tastenkombinationen.
Antworten:
Mit dem
send-prefix
Befehl können Sie Ihren Präfix-Tastenanschlag an den aktiven Bereich (den darin ausgeführten Prozess) senden. Standardmäßig lautet das Präfix Cb und Cb ist gebundensend-prefix
(so dass durch zweimaliges Schlagen ein einzelnes Cb an den aktiven Bereich gesendet wird). Dies ist genau das, was wir brauchen, um auf die Bindungen der inneren tmux- Instanz zuzugreifen .Das erste Cb wird von der "äußeren" tmux- Instanz als Präfixschlüssel erfasst . Die zweite wird von der "äußeren" tmux- Instanz erfasst und löst ihre Cb- Bindung aus (
send-prefix
). Dadurch wird ein Cb an den aktiven Bereich der äußeren Instanz gesendet. Der in diesem Bereich ausgeführte Prozess ist (letztendlich über eine ssh- Instanz) die „innere“ tmux- Instanz. Es erfasst das Cb als Präfixschlüssel. Jetzt wird Ihr nächster Tastendruck durch die äußere tmux- Instanz geleitet und von der inneren erfasst, um eine Bindung auszulösen.Um die c- Bindung (
new-window
) in einer Instanz der zweiten Ebene von tmux auszulösen , geben Sie Cb Cb c ein . Für eine Instanz der dritten Ebene von tmux würden Sie Cb Cb Cb Cb c eingeben .Diese Verdoppelung für jedes Level kann ärgerlich sein, wenn Sie häufig mit mehreren Schichten von tmux arbeiten . Wenn Sie einen anderen Schlüssel sparen können, können Sie eine Bindung ohne Präfix erstellen, um die Eingabe (möglicherweise) zu vereinfachen:
Neues Fenster in tmux der zweiten Ebene erstellen : C- \ c
Neues Fenster in tmux der dritten Ebene erstellen : C- ^ c (oder C- \ C- \ c )
Wenn Sie eine begrenzte Anzahl von tmux- Befehlen haben, die Sie (einfach) an die untergeordneten tmux- Instanzen senden möchten , können Sie stattdessen
send-keys
bestimmte Bindungen erstellen (möglicherweise nur in Ihrer obersten tmux- Instanz):Neues Fenster in tmux der zweiten Ebene erstellen : Cb Cc
Neues Fenster in tmux der dritten Ebene erstellen : Cb C.
quelle
last-window
Bindung, wie sie dabei genannt wurdeC-a C-a
, als solche auskommentieren :#bind-key C-a last-window
. Beachten Sie, dass mein Präfixa
nicht die Standardeinstellung istb
.bind-key -n C-\ send-prefix
funktioniert nicht. Mein tmux erkennt das \ nicht. Wenn ich einen Brief benutze, funktioniert es.tmux bind-key -n 'C-\' send-prefix
) vornehmen. Wenn Sie Probleme haben, es über~/.tmux.conf
(oder eine Präfix-:
Befehlszeile) zum Laufen zu bringen, versuchen Sie möglicherweise ein ähnliches Anführungszeichen (dhbind-key -n 'C-\' send-prefix
).Um auf das Innere zuzugreifen, halten Sie die Kontrolle gedrückt und drücken Sie zweimal B.
quelle
BEARBEITEN:
Ich empfehle NICHT ,
C-q
als Bindeschlüssel zu verwenden, da dies ein Standardbefehl für die Steuerungstaste istEine Situation , geschieht hier , und @Paschalis bietet eine Lösung:
Darunter ist die Antwort:
Fügen Sie zur Vereinfachung die folgende Zeile in Ihr Feld ein
~/.tmux.conf
Dann können Sie direkt verwenden
C-q
als bind-Schlüssel für Ihre Remote - tmux.quelle