La send-prefixcommande peut être utilisée pour envoyer votre frappe de préfixe au (processus en cours d'exécution dans) le volet actif. Par défaut, le préfixe est Cb et Cb est lié à send-prefix(de sorte que le frapper deux fois envoie un seul Cb au volet actif). C'est exactement ce dont nous avons besoin pour accéder aux liaisons de l' instance tmux interne .
Le premier Cb est capturé par l' instance tmux «externe» comme sa clé de préfixe. Le second est capturé par l' instance tmux «externe» et déclenche sa liaison Cb ( send-prefix). Cela envoie un Cb au volet actif de l'instance externe. Le processus en cours d'exécution dans ce volet est (finalement, via une instance ssh ) l' instance tmux «interne» . Il capture le Cb comme sa clé de préfixe. Maintenant, votre prochaine frappe sera passée à travers l' instance tmux externe et capturée par l'instance interne pour déclencher une liaison.
Pour déclencher la liaison c ( new-window) dans une instance de deuxième niveau de tmux , vous devez taper Cb Cb c . Pour une instance de troisième niveau de tmux , tapez Cb Cb Cb Cb c .
Ce doublement pour chaque niveau peut être ennuyeux si vous avez souvent affaire à plusieurs couches de tmux . Si vous pouvez épargner une autre clé, vous pouvez créer une liaison non préfixée pour rendre les choses (éventuellement) plus faciles à taper:
bind-key -n C-\ send-prefix
bind-key -n C-^ send-prefix \; send-prefix
Créer une nouvelle fenêtre dans le tmux de deuxième niveau : C- \ c
Créer une nouvelle fenêtre dans le tmux de troisième niveau : C- ^ c (ou C- \ C- \ c )
Si vous avez un nombre limité de commandes tmux que vous souhaitez envoyer (facilement) aux instances tmux de niveau inférieur , vous pouvez plutôt utiliser send-keyspour créer des liaisons spécifiques (peut-être juste dans votre instance tmux de niveau supérieur ):
bind-key C-c send-keys C-b c
bind-key C send-keys C-b C-b c
Créer une nouvelle fenêtre dans tmux de deuxième niveau : Cb Cc
Créer une nouvelle fenêtre dans tmux de troisième niveau : Cb C