65 votes

Comment réduire le délai entre la touche préfixe et la touche commande dans tmux ?

Mon ~/.tmux.conf :

set -g prefix C-a
unbind C-b
bind C-a send-prefix

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(pour rendre les touches de commande identiques à celles de GNOME Teminator)

La situation : après avoir divisé horizontalement la fenêtre en 2 volets, on passe à un volet avec Ctrl + a Up flèche, je dois attendre un certain temps (2-3 secondes) pour visualiser les commandes de l'historique Shell dans ce volet. Car si j'appuie sur la touche Up à nouveau, il reviendra à l'autre volet au lieu de me montrer une commande d'historique Shell. Comment puis-je désactiver cela ?

73voto

Chris Johnsen Points 36743

Haut, bas, gauche et droite ( select-pane et Control- et Meta- des mêmes touches pour les liaisons resize-pane ) sont des liaisons "répétables" par défaut (réalisées par le biais de l'option bind-key -r ). Après avoir tapé la touche de préfixe et n'importe quelle touche répétable, vous pouvez taper n'importe quelle autre touche répétable (sans avoir à retaper le préfixe) dans le nombre de millisecondes spécifié par l'attribut repeat-time option de session (la valeur par défaut est 500ms).

Vous pouvez examiner la valeur actuelle de repeat-time avec ces commandes Shell :

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

Si vous voulez désactiver la répétition pour la session en cours, tapez votre préfixe, un deux-points, et entrez cette commande :

set-option repeat-time 0

Ou bien, vous pourriez trouver une valeur confortable non nulle. Si vous avez vraiment une valeur d'environ 2000 (c'est-à-dire 2s), alors je suppose qu'elle est réglée en /etc/tmux.conf .

Si vous souhaitez désactiver la répétition (ou modifier le délai d'attente) pour toutes vos sessions, définissez la valeur globale avec cette commande :

set-option -g repeat-time 0

Si vous avez défini une valeur par session, vous devrez la désactiver pour que la valeur globale prenne effet dans cette session ( set-option -u repeat-time ). Vous pouvez définir la valeur globale par le biais de votre fichier .tmux.conf si vous préférez le laisser désactivé "en permanence".

Si vous n'avez que des problèmes avec Up, vous pourriez le relier sans -r :

bind-key Up select-pane -U

7voto

James Points 2983

Vous pouvez également désactiver la répétition pour des combinaisons de touches spécifiques, si vous le souhaitez. Par exemple, les liaisons par défaut pour passer d'un volet à l'autre se résument à :

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

Vous pourriez les recréer sans le -r comme

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

Personnellement, je préfère que le changement de volet ne soit pas répétable. La répétition est agréable si vous avez une fenêtre divisée en un grand nombre de petits volets, mais elle peut conduire à des collisions de touches (comme vous l'avez décrit) avec les applications fonctionnant dans ces volets (comme Shell history, vim, etc.), et je n'ai généralement pas plus de 2 volets par fenêtre de toute façon. Mais chacun son truc.

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