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 \edans 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+ VCtrl+ Leftà l'invite du shell, je vois ^[O5D. ^[est le caractère d'échappement, donc j'aurais besoin de lier \eO5Ddans 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.
Ça a l'air bien, mais ça ne marche pas. \eest la clé d'échappement, pas le caractère d'échappement…
Profpatsch
@Profpatsch Weird, cette liaison fonctionne pour moi. J'utilise Mutt 1.5 depuis presque toujours, peut-être que 1.4 fonctionne différemment? Cela fonctionne-t-il si vous utilisez \edans une macro macro editor \e[O5D \eb:?
Gilles 'SO- arrête d'être méchant'
1
Je suis sur Terminator, quand je frappe, Ctrl+Downje reçois ^[[1;5B, ça ne marche pas avec bind index \e[1;5B commandet pas \e1;5B aussi. Oh, je travaille avec Mutt 1.5.21 (Arch.;)
Profpatsch
1
@Profpatsch Ok, je peux reproduire cela. Il semble y avoir une limitation à 5 caractères: bind editor \e[1\;5 backward-wordfonctionne pour moi (et insère un supplément Dquand je rentre ESC [ 1 ; 5 D), mais les bind editor \e[1\;5D backward-wordrésultats à ESC [ 1 ; 5 Dne rien faire. Je vois une limitation à 8 caractères dans le code source ( MAX_SEQ), mais rien qui déclencherait à 5 caractères.
Gilles 'SO- arrête d'être méchant'
@Profpatsch Une solution de contournement serait de faire en sorte que votre terminal envoie des séquences plus courtes. Je ne sais pas si Terminator prend en charge cela.
Ensuite, en appuyant sur la touche souhaitée (comme Ctrl + flèche), vous pouvez apprendre à référencer n'importe quelle touche. Dans mon cas, j'obtiens <C-Up>Ctrl + Up.
Dans le cas où vous auriez réussi à utiliser :exec what-keypour obtenir ces informations, mais que vous n'auriez pas pu trouver "quelle clé" appuyer pour sortir de la what-keycommande, la séquence de touches pour quitter est Ctrl-g.
KDN
@KDN: Merci. Ça devenait un peu gênant. ;)
Teekin
@KDN Ctrl-gest utilisé pour annuler les commandes dans emacs et de nombreux shells Unix.
\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.J'ai trouvé la bonne réponse ici :
À l'intérieur de mutt, utilisez la commande
Ensuite, en appuyant sur la touche souhaitée (comme Ctrl + flèche), vous pouvez apprendre à référencer n'importe quelle touche. Dans mon cas, j'obtiens
<C-Up>
Ctrl + Up.la source
:exec what-key
pour obtenir ces informations, mais que vous n'auriez pas pu trouver "quelle clé" appuyer pour sortir de lawhat-key
commande, la séquence de touches pour quitter estCtrl-g
.Ctrl-g
est utilisé pour annuler les commandes dans emacs et de nombreux shells Unix.