Tout d'abord, vous devez déterminer si votre terminal envoie des séquences d'échappement différentes pour ces combinaisons de touches. Les applications exécutées dans les terminaux obtiennent des caractères en entrée, pas des clés. Les touches de fonction sont codées sous forme de caractères de contrôle ou de séquences d'échappement commençant par le caractère d'échappement (que vous pouvez écrire comme \e
dans une liaison de touches).
Pour voir la séquence d'échappement envoyée par une combinaison de touches dans un terminal, appuyez sur Ctrl+ Và l'invite du shell, puis appuyez sur la combinaison de touches. Par exemple, si j'appuie sur Ctrl+ V Ctrl+ Leftà l'invite du shell, je vois ^[O5D
. ^[
est le caractère d'échappement, donc j'aurais besoin de lier \eO5D
dans Mutt pour le faire réagir à Ctrl+ Left:
bind editor \eO5D backward-word
Certains terminaux envoient la même séquence d'échappement pour la même clé avec différents modificateurs. Si tel est le cas, vous devrez déterminer comment modifier le comportement du terminal ou passer à un autre terminal.
Gilles 'SO- arrête d'être méchant'
la source
\e
est la clé d'échappement, pas le caractère d'échappement…\e
dans une macromacro editor \e[O5D \eb
:?Ctrl+Down
je reçois^[[1;5B
, ça ne marche pas avecbind index \e[1;5B command
et pas\e1;5B
aussi. Oh, je travaille avec Mutt 1.5.21 (Arch.;)bind editor \e[1\;5 backward-word
fonctionne pour moi (et insère un supplémentD
quand je rentreESC [ 1 ; 5 D
), mais lesbind editor \e[1\;5D backward-word
résultats àESC [ 1 ; 5 D
ne rien faire. Je vois une limitation à 8 caractères dans le code source (MAX_SEQ
), mais rien qui déclencherait à 5 caractères.