Faire en sorte que TMUX utilise Alt + Num pour sélectionner la fenêtre

10

J'ai joué avec TMUX et j'aime les capacités de configuration.

La liste des fenêtres en bas me fait penser que le même raccourci pour changer les fenêtres dans Irssi, devrait fonctionner dans TMUX, mais ce n'est pas le cas.

Donc pour le moment, je dois appuyer sur Cb puis sur un chiffre pour ouvrir cette fenêtre. Je suis heureux d'avoir Cb pour mon préfixe normal, (par exemple pour Cb? Pour l'aide, Cb: entrée de commande) Mais ce serait cool si je pouvais utiliser à la fois C-b + Numkey et Alt+ NumKeypour changer d'onglet.

Ce serait encore plus cool s'il pouvait détecter si une fenêtre affiche Irssi, puis ignorer le Alt+ NumKey, afin que je puisse toujours changer entre les fenêtres Irssi.

Lyndon White
la source

Réponses:

14

La commutation de fenêtres avec Alt peut être effectuée en ajoutant:

# switch windows alt+number
bind-key -n M-1 select-window -t 1
bind-key -n M-2 select-window -t 2
bind-key -n M-3 select-window -t 3
bind-key -n M-4 select-window -t 4
bind-key -n M-5 select-window -t 5
bind-key -n M-6 select-window -t 6
bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9

à votre ~/.tmux.conf Ceci provient de: https://github.com/proft/dotfiles/blob/master/.tmux.conf

De plus, pour ne pas le faire si irssi est dans la fenêtre active:

#switch windows alt+number, unless we are running irssi
bind -n M-1 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 1' 'send M-1'
bind -n M-2 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 2' 'send M-2'
bind -n M-3 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 3' 'send M-3'
bind -n M-4 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 4' 'send M-4'
bind -n M-5 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 5' 'send M-5'
bind -n M-6 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 6' 'send M-6'
bind -n M-7 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 7' 'send M-7'
bind -n M-8 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 8' 'send M-8'
bind -n M-9 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 9' 'send M-9'
bind -n M-0 if 'test `tmux list-panes -F "#W"` != "irssi"' 'select-window -t 0' 'send M-0'

Qui lit approximativement la clé Bind [sans nécessiter de préfixe], à l'action de: vérifier si le volet actuel n'est pas nommé irssi, et si ce n'est pas le cas, sélectionner la fenêtre appropriée, sinon, renvoyer la clé, de sorte que l'application sous-jacente [irssi] peut peut l'obtenir.

Lyndon White
la source
L'astuce irssi est exactement ce que je cherchais. Je vous remercie.
rr-