Split Pane Switching dans tmux: basculer une fois par commande

Je suis un utilisateur de tmux heureux depuis un moment, mais il y a un comportement qui me dérange. Lorsque je change de volet à l’aide de la flèche ^ b, puis que vous appuyez immédiatement sur la flèche vers le haut (pour obtenir une commande de l’historique, par exemple), le volet de la fenêtre change à nouveau. Je comprends que cela peut être utile si vous voulez vous déplacer rapidement à travers plusieurs volets, mais pour moi, c’est pénible dans le dos puisque je me retrouve dans des vitres dans lesquelles je ne pensais pas être.

Existe-t-il un moyen de définir tmux pour que la commande ^ b-arrow ne permute qu’une seule fois et ignore les touches fléchées suivantes?

Cela se produit car les liaisons par défaut des touches fléchées sont configurées avec bind-key -r , en spécifiant qu’elles peuvent être répétées. Il existe deux manières de désactiver cette fonctionnalité.

Tout d’abord, vous pouvez utiliser set-option repeat-time 0 pour désactiver la répétition complète. Cela affectera toutes les liaisons. Je trouve cela très gênant lors du redimensionnement des volets.

Deuxièmement, vous pouvez modifier les liaisons pour que les touches fléchées utilisent la bind-key sans l’option -r :

 bind-key Up select-pane -U bind-key Down select-pane -D bind-key Left select-pane -L bind-key Right select-pane -R 

Si vous passez beaucoup de temps à naviguer dans les volets, pourquoi ne pas configurer les mappages globaux de manière à ne pas avoir à utiliser de préfixes, par exemple bind -n Ch select-pane -L pour mapper ctrl-h sur gauche? .

Voir http://robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits pour une solution encore meilleure qui navigue également sur les fenêtres Vim.

Une autre option consiste à créer une liaison pour passer au volet précédent, si vous effectuez des allers-retours entre les deux mêmes volets.

 bind-key Ca last-pane