Conséquences du paramètre tmux 'escape-time 0'?

16

Je trouve qu'en exécutant (neo) vim à l'intérieur tmux, la touche d'échappement est retardée. Ceci est corrigé en mettant

set -sg escape-time 0

dans mon .tmux.conf. Vraisemblablement, cela désactive la possibilité d'utiliser ESC comme clé "méta". En supposant que je travaille toujours avec des claviers qui ont une touche Alt pour agir comme "méta", je me demande quelles conséquences potentiellement indésirables ce réglage pourrait entraîner.

Michael Goerz
la source

Réponses:

16

La mise escape-timeà zéro interfère avec la reconnaissance des touches de fonction par tmux. Sa page de manuel indique

escape-time time
Définissez le temps, en millisecondes, pendant lequel tmux attend une entrée d'échappement pour déterminer s'il fait partie d'une séquence de fonctions ou de métadonnées. La valeur par défaut est 500 millisecondes.

Le terme "touche de fonction" s'applique à tout ce qui a ce format (y compris pageup, utilisé dans le défilement par tmux et les touches de curseur). 500 millisecondes peuvent être excessives si vous ne travaillez jamais à distance. 20 millisecondes est réalisable pour les connexions locales. L'analogue ESCDELAYde ncurses est par défaut de 1000 millisecondes; seule une très petite fraction des utilisateurs juge nécessaire de changer cela.

Thomas Dickey
la source
hmm ... les touches fléchées et pageup semblent bien fonctionner dans tmux, même avec un temps d'échappement réglé sur 0
Michael Goerz
1
La documentation fait référence aux liaisons de clés gérées par tmux (et non aux applications exécutées à l'intérieur de tmux).
Thomas Dickey
@AntoineCotten Pourriez-vous développer cela? Je pensais que Metarien n'était envoyé jusqu'à ce qu'il soit associé à une touche de non-fonction, auquel cas il enverrait l'échappement et la clé "en même temps" (moins de retard que toute période d'interrogation raisonnable, en supposant qu'il interroge au lieu d'utiliser des interruptions ou quelque chose.) J'ai suivi mon instinct et je n'ai jamais défini le délai d'expiration en dessous de 10, principalement parce que je m'attendais à ce qu'il cause des problèmes si la valeur par défaut était si élevée.
John P
Le comportement de Meta dépend du terminal. tmuxn'a aucun contrôle sur cela, mais connaît les clés spéciales de xterm (dans une table). La méta d'une clé ordinaire dans xterm fait quelque chose (recherchez eightBitInputdans le manuel). Pour d'autres terminaux, il peut faire quelque chose, mais n'est généralement pas documenté.
Thomas Dickey
@JohnP @ThomasDickey J'ai précédemment commenté que les paramètres escape-timeà 0 interféraient avec les commandes Meta dans mon émulateur de terminal. Je voudrais apporter une correction, ce n'était vrai que parce que le terminal macOS utilise Esccomme clé Meta . Il n'y a aucun problème lors de l'utilisation d'une clé différente comme Alt . Toutes mes excuses pour le commentaire trompeur (supprimé).
Antoine Cotten