Attacher à différentes fenêtres en session

117

J'ai une session tmux assez simple fonctionnant avec deux fenêtres ouvertes; l'un d'eux pour le piratage local et l'autre pour le travail.

Ce que j'aimerais faire, c'est simplement de me connecter à la fenêtre de piratage tout en laissant la fenêtre de travail ouverte dans un autre terminal. Cependant, dès que je me connecte à tmux, toutes les commandes sont envoyées aux deux fenêtres. Par conséquent, si je passe à une autre fenêtre, la même chose se produit dans l’autre terminal et inversement.

Y at-il un moyen pour moi de simplement connecter à chaque fenêtre séparément?

Naftuli Kay
la source

Réponses:

153

La raison pour laquelle les deux clients changent de fenêtre en même temps est qu'ils sont tous deux connectés à la même session (la «fenêtre actuelle» est un attribut de la session, pas le client). Ce que vous pouvez faire est de lier une ou plusieurs fenêtres à plusieurs sessions différentes. Étant donné que chaque session a sa propre «fenêtre actuelle», vous pouvez alors changer de fenêtre indépendamment dans chaque session.

Le moyen le plus simple d'utiliser cette fonctionnalité consiste à utiliser la fonctionnalité «sessions groupées» de la new-sessioncommande:

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

Pour voir les sessions actuellement disponibles:

$ tmux list-sessions

Chaque session d'un groupe partage automatiquement le même ensemble de fenêtres: l'ouverture / la liaison (ou la fermeture / la dissociation) d'une fenêtre dans une session du groupe entraîne automatiquement la liaison (ou le désolidarisation) de la même fenêtre dans toutes les autres sessions du groupe. groupe.

Lorsque vous avez terminé votre «extra» session, vous pouvez la tuer avec kill-session. Les fenêtres elles-mêmes ne seront tuées que si votre session était la seule à laquelle elles étaient liées. Alternativement, vous pouvez vous déconnecter de votre session "extra" comme d'habitude (préfixe d, ou detach-client); si vous gardez votre session supplémentaire (en la déconnectant simplement), vous pouvez lui donner un nom descriptif (préfixe $, ou rename-session) afin de pouvoir l'identifier facilement et vous reconnecter ultérieurement (vous pouvez également donner la session "originale" un nom aussi).


Si vous ne souhaitez pas partager automatiquement un ensemble dynamique de fenêtres, vous pouvez utiliser link-window(et unlink-window) pour amener des fenêtres individuelles dans (et hors de) votre propre session «personnelle»; Cela offre un accès non automatique et de niveau inférieur à la même fonctionnalité principale sur laquelle sont basées les «sessions groupées» (fenêtres liées à plusieurs sessions).

Chris Johnsen
la source
12
Réponse Gread. Savez-vous comment empêcher 2 sessions ouvertes de synchroniser leurs tailles? Si je crée une nouvelle session et que la fenêtre est plus petite, une grande partie de l’écran d’affichage de l’original est gaspillée.
Deflt
32
J'ai trouvé la réponse à ma question Q:setw -g aggressive-resize on
defhlt
1
Ceci est supporté comme mode "voyou" dans wemux .
blueyed