¿Cómo vincular <Control> <Arrowkey> en Mutt?

9

Estoy atorado aqui:

¿Es posible unir uno <enter>, <backspace>, <up>, <down>, <left>, <right>con el control?

\C<foo>aparece como |foo>en la ayuda y ^<up>no está vinculado.
'\C<foo>, '\C <foo>'no trabaje también (lo mismo con en su "lugar).

<control> no existe

En realidad se puede llegar ^<foo>a aparecer en la ayuda, pero sólo si el mapa ^<foo>, que no es exactamente lo que quiero. ;)

Profpatsch
fuente

Respuestas:

5

Primero, debe determinar si su terminal envía diferentes secuencias de escape para estas combinaciones de teclas. Las aplicaciones que se ejecutan en terminales obtienen caracteres como entrada, no claves. Las teclas de función están codificadas como caracteres de control o como secuencias de escape que comienzan con el carácter de escape (que puede escribir como \eun enlace de tecla).

Para ver la secuencia de escape enviada por una combinación de teclas en un terminal, presione Ctrl+ Ven el indicador de comandos de la consola, luego presione la combinación de teclas. Por ejemplo, si presiono Ctrl+ V Ctrl+ Leften un indicador de shell, veo ^[O5D. ^[es el personaje de escape, por lo que necesitaría \eO5Dunirme a Mutt para que reaccione a Ctrl+ Left:

bind editor \eO5D backward-word

Algunos terminales envían la misma secuencia de escape para la misma clave con diferentes modificadores. Si ese es el caso, deberá descubrir cómo cambiar el comportamiento del terminal o cambiar a un terminal diferente.

Gilles 'SO- deja de ser malvado'
fuente
Suena bien, pero no funciona. \ees la clave de escape, no el personaje de escape ...
Profpatsch
@Profpatsch Weird, ese enlace funciona para mí. He estado usando Mutt 1.5 desde hace mucho tiempo, ¿tal vez 1.4 funciona de manera diferente? ¿Funciona si lo usa \een una macro macro editor \e[O5D \eb:?
Gilles 'SO- deja de ser malvado'
1
Estoy en Terminator, cuando golpeo Ctrl+Downconsigo ^[[1;5B, no funciona bind index \e[1;5B commandy tampoco con \e1;5B . Oh, yo trabajo con Mutt 1.5.21 (Arch.;)
Profpatsch
1
@Profpatsch Ok, puedo reproducir esto. Parece que hay una limitación a 5 caracteres: bind editor \e[1\;5 backward-wordfunciona para mí (y se inserta un extra Dcuando entro ESC [ 1 ; 5 D), pero bind editor \e[1\;5D backward-wordlos resultados en ESC [ 1 ; 5 Dno hacer nada. Veo una limitación de 8 caracteres en el código fuente ( MAX_SEQ), pero nada que se dispare a 5 caracteres.
Gilles 'SO- deja de ser malvado'
@Profpatsch Una solución alternativa sería hacer que su terminal envíe secuencias más cortas. No sé si Terminator lo admite.
Gilles 'SO- deja de ser malvado'
15

Encontré la respuesta correcta aquí :

Dentro de mutt, usa el comando

:exec what-key

Luego, presionando la tecla deseada (como Ctrl + flecha) puede aprender a hacer referencia a cualquier tecla. En mi caso obtengo <C-Up>Ctrl + Arriba.

alexis
fuente
44
En caso de que haya logrado utilizar :exec what-keyesta información, pero no haya podido averiguar "qué tecla" presionar para salir del what-keycomando, la secuencia de teclas para salir es Ctrl-g.
KDN
@KDN: Gracias. Se estaba volviendo un poco vergonzoso. ;)
Teekin
@KDN Ctrl-gse usa para cancelar comandos en emacs y muchos shells de Unix.
Jangid