web-dev-qa-db-fra.com

Commutation de volet fractionné dans tmux: basculer une fois par commande

Je suis un utilisateur de tmux heureux depuis un moment maintenant, mais il y a un comportement qui me dérange. Lorsque je change de volet à l'aide de la flèche ^ b, puis que j'appuie immédiatement sur la flèche vers le haut (pour obtenir une commande de l'historique, par exemple), le volet de la fenêtre bascule à nouveau. Je comprends que cela peut être utile si vous souhaitez vous déplacer rapidement dans plusieurs volets, mais pour moi, c'est une douleur à l'arrière, car je continue à me retrouver dans des volets que je n'ai jamais voulu faire.

Donc, existe-t-il un moyen de définir tmux pour que la commande ^ b-arrow ne fasse que basculer le volet ne fois et ignore les pressions de touches fléchées suivantes?

70
SteakTartaar

Cela se produit car les liaisons par défaut des touches fléchées sont configurées avec bind-key -r, en précisant qu'elles peuvent être répétées. Vous pouvez désactiver cela de deux manières.

Tout d'abord, vous pouvez utiliser set-option repeat-time 0 pour désactiver entièrement la répétition. Cela affectera toutes les liaisons. Je trouve cela très ennuyeux lors du redimensionnement des volets.

Deuxièmement, vous pouvez modifier les liaisons des touches fléchées pour utiliser bind-key sans le -r option:

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

Si vous passez beaucoup de temps à naviguer dans les volets, pourquoi ne pas configurer des mappages globaux afin de ne pas avoir à utiliser de préfixes, par exemple bind -n C-h select-pane -L pour mapper ctrl-h vers la gauche, comme Vim.

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

8
mahemoff

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

bind-key C-a last-pane
3
Decoy