95 votes

Comment passer rapidement à Windows n.10+ dans tmux ?

Tmux est livré par défaut avec le raccourci clavier suivant pour basculer rapidement entre les fenêtres numérotées de 0 à 9 :

C-b + 0-9

Avec quelques dizaines de dossiers de projets différents, quelques sessions ssh et d'autres goodies dans mon tmux, il semble que je déborde toujours des 10 Windows auxquels je peux accéder rapidement, et j'aimerais trouver un moyen rapide de passer à Windows numéroté 10 ou plus. Actuellement, je dois taper manuellement quelque chose de ce genre dans l'invite de tmux :

swap-window -t 12

Ce qui prend beaucoup de temps.

Quelqu'un a-t-il trouvé un raccourci solide permettant d'accéder rapidement à Windows 10 et aux versions ultérieures ? Je sais que Weechat a résolu ce problème avec les deux raccourcis :

Alt + 0-9
Alt+j followed by \d{2}

Est-ce que quelque chose de ce genre peut être accompli avec tmux ?

148voto

Jason Points 1420

Il existe quelques moyens simples de le faire.

  • 使用方法 C-b ' pour sélectionner l'index de la fenêtre.

  • 使用方法 C-b w pour obtenir un index interactif dans lequel choisir (0-9a-z).

  • Ajoutez des liaisons à parcourir rapidement dans tmux.conf

    bind -r C-h select-window -t :-
    bind -r C-l select-window -t :+

Le site -r dans le dernier vous permet de répéter la touche sans avoir à répéter C-b . En général, la deuxième est celle qui nécessite le moins de frappes.

7voto

zenoparadox Points 1

Vous pouvez utiliser switch-client -T<keytablename> pour configurer une séquence de touches permettant d'accéder directement aux fenêtres à numérotation élevée.

Par exemple, j'utilise cette configuration pour passer à Windows 10-19 avec Ctrl-b + - + [0-9] :

bind - switch-client -Tabove9
bind -Tabove9 0 select-window -t:10
bind -Tabove9 1 select-window -t:11
bind -Tabove9 2 select-window -t:12
bind -Tabove9 3 select-window -t:13
bind -Tabove9 4 select-window -t:14
bind -Tabove9 5 select-window -t:15
bind -Tabove9 6 select-window -t:16
bind -Tabove9 7 select-window -t:17
bind -Tabove9 8 select-window -t:18
bind -Tabove9 9 select-window -t:19

Explication détaillée :

Comme expliqué dans la page de manuel de tmux, switch-client peut être utilisé pour définir la table des clés actuelle afin de créer des combinaisons de clés :

switch-client [-ElnprZ] [-c client-cible] [-t session-cible] [-T table-clé]

...

-T définit la table des clés du client ; la prochaine clé du client sera interprétée à partir de la table des clés. Ceci peut être utilisé pour configurer plusieurs clés préfixes, ou pour lier des commandes à des séquences de clés. Par exemple, pour que la commande list-keys soit exécutée en tapant 'abc' :

               bind-key -Ttable2 c list-keys
               bind-key -Ttable1 b switch-client -Ttable2
               bind-key -Troot   a switch-client -Ttable1

Dans mon exemple, j'ai donc configuré le - pour passer à un tableau personnalisé nommé above9 puis les touches configurées 0 a 9 dans ce tableau pour passer à Windows 10 a 19 .

C'est l'équivalent de la fonction bind -c <class> (c'est de là que je viens)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X