Existe-t-il un moyen de connaître l'index de volet d'un volet particulier dans Tmux?
Je sais que je peux exécuter quelque chose comme:
tmux display-message -p "#{pane_index}"
mais cela ne fonctionne que sur le volet actif. Je veux que cela fonctionne pour n'importe quel volet dans lequel il est exécuté. Normalement, bien sûr, il est difficile d'exécuter un script dans un volet qui n'est pas le volet actif, mais vous pouvez le faire si vous utilisez le :set-window-option synchronize-panes
pour synchroniser l'entrée entre tous les volets.
Comment pourrais-je l'utiliser?
Dans mon travail, je dois me connecter à plusieurs serveurs identiques dans un équilibreur de charge en même temps, ce que je fais avec les volets Tmux. J'active normalement la fonction de synchronisation des volets pour me permettre d'avoir tout ce que je tape à l'identique envoyé à chaque volet en même temps. Cela fonctionne très bien.
Ce que je trouve, c'est que j'aimerais me connecter aux serveurs et faire quelque chose d'unique à chaque volet parfois, en utilisant le même "index de volet" à chaque fois. Par exemple, j'exécuterais une commande comme ceci:
ssh NODE_$(get_pane_number)
qui, une fois synchronisé et exécuté dans chaque volet, exécuterait les commandes suivantes dans une fenêtre à 4 volets:
ssh NODE_0
dans le volet 0
ssh NODE_1
dans le volet 1
ssh NODE_2
dans le volet 2
ssh NODE_3
dans le volet 3
Je pourrais bien sûr écrire ceci, mais cela ne fonctionnerait que bien avant de commencer à synchroniser les entrées. Il y a des moments où j'aimerais le faire après avoir également commencé à synchroniser les entrées.
Vous pouvez obtenir tous les index de volet ainsi que de nombreuses autres informations sur les volets avec
Voir
tmux(1)
FORMATS pour obtenir une liste des informations que vous pouvez obtenir et travailler avec.la source
get_pane_number
qui renvoie en fait le bon # sans que le volet soit actif.S'appuyant sur les deux solutions proposées, j'ai trouvé que cette fonction fonctionnait pour moi:
ou la même chose commençant par index = 1
Ce n'est pas le plus joli mais ça marche et je peux le déposer dans mon
.bashrc
et juste l'utiliser$I
quand j'ai besoinla source