An verschiedene Fenster in der Sitzung anhängen

117

Ich habe eine ziemlich einfache tmux-Sitzung mit zwei geöffneten Fenstern; einer von ihnen für lokales Hacken und einer von ihnen für die Arbeit.

Ich möchte einfach eine Verbindung zum Hacking-Fenster herstellen, während das Arbeitsfenster in einem anderen Terminal geöffnet bleibt. Sobald ich mich jedoch mit tmux verbinde, werden alle Befehle an beide Fenster gesendet. Wenn ich also in ein anderes Fenster wechsle, geschieht dasselbe im anderen Terminal und umgekehrt.

Gibt es eine Möglichkeit für mich, einfach eine Verbindung zu jedem Fenster herzustellen?

Naftuli Kay
quelle

Antworten:

153

Der Grund, warum beide Clients gleichzeitig das Fenster wechseln, ist, dass beide mit derselben Sitzung verbunden sind (das „aktuelle Fenster“ ist ein Attribut der Sitzung, nicht des Clients). Sie können ein oder mehrere Fenster in mehrere verschiedene Sitzungen verknüpfen. Da jede Sitzung ein eigenes „aktuelles Fenster“ hat, können Sie die Fenster in jeder Sitzung unabhängig voneinander wechseln.

Am einfachsten können Sie diese Funktion verwenden, indem Sie die Funktion "Gruppierte Sitzungen" des new-sessionBefehls verwenden:

$ tmux new-session -t 'original session name or number'

So zeigen Sie die aktuell verfügbaren Sitzungen an:

$ tmux list-sessions

Jede Sitzung in einer Gruppe teilt automatisch die gleichen Fenster: Das Öffnen / Verknüpfen (oder Schließen / Aufheben der Verknüpfung) eines Fensters in einer Sitzung der Gruppe bewirkt automatisch, dass dasselbe Fenster in allen anderen Sitzungen der Gruppe verknüpft (oder die Verknüpfung aufgehoben) wird Gruppe.

Wenn Sie mit Ihrer „zusätzlichen“ Sitzung fertig sind, können Sie sie mit beenden kill-session. Die Fenster selbst werden nicht getötet, es sei denn, Ihre Sitzung war die einzige, mit der sie verknüpft waren. Alternativ können Sie die Verbindung zu Ihrer „zusätzlichen“ Sitzung wie gewohnt trennen (Präfix doder detach-client). Wenn Sie Ihre "zusätzliche" Sitzung beibehalten (indem Sie sie einfach trennen), möchten Sie ihr möglicherweise einen beschreibenden Namen geben (Präfix $oder rename-session), damit Sie sie leicht identifizieren und später erneut verbinden können (Sie möchten möglicherweise auch eine Verbindung herstellen) die "ursprüngliche" Sitzung auch einen Namen).


Wenn Sie einen dynamischen Satz von Fenstern nicht automatisch freigeben möchten, können Sie mit link-window(und unlink-window) einzelne Fenster in Ihre (und aus) eigene (persönliche) Sitzung bringen. Dies bietet einen nicht automatischen und untergeordneten Zugriff auf dieselbe Kernfunktionalität, auf der „gruppierte Sitzungen“ basieren (Fenster, die zu mehreren Sitzungen verknüpft sind).

Chris Johnsen
quelle
12
Gute Antwort. Wissen Sie, wie Sie verhindern können, dass zwei offene Sitzungen ihre Größe synchronisieren? Wenn ich eine neue Sitzung erstelle und das Fenster kleiner ist, wird viel Platz auf dem Bildschirm in der ursprünglichen Sitzung verschwendet.
Defhlt
32
Ich habe die Antwort auf meine setw -g aggressive-resize on
Frage
1
Dies wird in Wemux als "Rogue" -Modus unterstützt .
bläulich