web-dev-qa-db-fra.com

Attacher à différentes fenêtres en session

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

Ce que j'aimerais faire, c'est simplement 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, donc si je passe à une autre fenêtre, la même chose se produit dans l'autre terminal et vice-versa.

Existe-t-il un moyen pour moi de me connecter simplement à chaque fenêtre séparément?

122
Naftuli Kay

La raison pour laquelle les deux clients changent de fenêtre en même temps est qu'ils sont tous les 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 ensuite changer de fenêtre indépendamment dans chaque session.

La façon la plus simple d'utiliser cette fonction est d'utiliser la fonction "sessions groupées" de new-session commande:

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

Pour voir les sessions actuellement disponibles:

$ tmux list-sessions

Chaque session d'un groupe partagera automatiquement le même ensemble de fenêtres: ouvrir/lier (ou fermer/dissocier) une fenêtre dans une session du groupe entraîne automatiquement la même fenêtre à lier (ou à ne pas lier) dans toutes les autres sessions de la groupe.

Lorsque vous avez terminé votre session "supplémentaire", vous pouvez la tuer avec kill-session. Les fenêtres elles-mêmes ne seront pas supprimées, sauf si votre session était la seule à laquelle elles étaient liées. Vous pouvez également vous déconnecter de votre session "supplémentaire" comme d'habitude (préfixe d ou detach-client); si vous conservez votre session "supplémentaire" (en la détachant simplement), vous pouvez lui donner un nom descriptif (Prefix $, ou rename-session) pour que vous puissiez facilement l'identifier et vous y reconnecter ultérieurement (vous pouvez également donner un nom à la session "d'origine").


Si vous ne souhaitez pas partager automatiquement un ensemble dynamique de fenêtres, vous pouvez utiliser link-window (et unlink-window) pour introduire 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é de base sur laquelle sont basées les "sessions groupées" (fenêtres liées à plusieurs sessions).

162
Chris Johnsen