Come associare <Controllo> <Arrowkey> in Mutt?


9

Sono bloccato qui:

È possibile vincolarne uno <enter>, <backspace>, <up>, <down>, <left>, <right>con il controllo?

\C<foo>si presenta come |foo>nella guida e ^<up>non è vincolato.
'\C<foo>, '\C <foo>'non funziona troppo (lo stesso con "invece).

<control> non esiste.

In realtà si può ottenere ^<foo>di presentarsi in aiuto, ma solo se si mappa ^<foo>, che non è esattamente quello che voglio. ;)

Risposte:


5

Innanzitutto, è necessario determinare se il proprio terminale invia sequenze di escape diverse per queste combinazioni di tasti. Le applicazioni in esecuzione nei terminali ottengono caratteri come input, non chiavi. I tasti funzione sono codificati come caratteri di controllo o come sequenze di escape che iniziano con il carattere di escape (che è possibile scrivere come \ein un'associazione di tasti).

Per vedere la sequenza di escape inviata da una combinazione di tasti in un terminale, premere Ctrl+ Val prompt della shell, quindi premere la combinazione di tasti. Ad esempio, se premo Ctrl+ V Ctrl+ Leftal prompt della shell, vedo ^[O5D. ^[è il personaggio di escape, quindi dovrei legarmi \eO5Da Mutt per farlo reagire a Ctrl+ Left:

bind editor \eO5D backward-word

Alcuni terminali inviano la stessa sequenza di escape per lo stesso tasto con diversi modificatori. In tal caso, dovrai capire come modificare il comportamento del terminale o passare a un altro terminale.


Sembra buono, ma non funziona. \eè la chiave di escape, non il personaggio di escape ...
Profpatsch,

@Profpatsch Weird, quell'associazione funziona per me. Uso Mutt 1.5 da quasi sempre, forse 1.4 funziona in modo diverso? Funziona se si utilizza \ein una macro macro editor \e[O5D \eb:?
Gilles 'SO- smetti di essere malvagio' il

1
Sono su Terminator, quando premo Ctrl+Downottengo ^[[1;5B, non funziona con bind index \e[1;5B commande non con \e1;5B . Oh, lavoro con Mutt 1.5.21 (Arch.;)
Profpatsch il

1
@Profpatsch Ok, posso riprodurlo. Sembra esserci una limitazione a 5 caratteri: bind editor \e[1\;5 backward-wordfunziona per me (e inserisco un extra Dquando entro ESC [ 1 ; 5 D), ma non bind editor \e[1\;5D backward-wordrisulta ESC [ 1 ; 5 Dfare nulla. Vedo un limite di 8 caratteri nel codice sorgente ( MAX_SEQ), ma nulla che si innescherebbe a 5 caratteri.
Gilles 'SO- smetti di essere malvagio' il

@Profpatsch Una soluzione alternativa sarebbe quella di fare in modo che il tuo terminale invii sequenze più brevi. Non so se Terminator lo supporti.
Gilles 'SO- smetti di essere malvagio' il

15

Ho trovato la risposta corretta qui :

All'interno di mutt, usa il comando

:exec what-key

Quindi premendo il tasto desiderato (come Ctrl + freccia) puoi imparare come fare riferimento a qualsiasi tasto. Nel mio caso ottengo <C-Up>per Ctrl + Su.


4
Nel caso in cui tu sia riuscito a utilizzare :exec what-keyper ottenere queste informazioni, ma poi non sei riuscito a capire "quale tasto" premere per uscire dal what-keycomando, la sequenza di tasti per uscire è Ctrl-g.
KDN

@KDN: grazie. Stava diventando un po 'imbarazzante. ;)
Teekin,

@KDN Ctrl-gviene utilizzato per annullare i comandi in emacs e molte shell unix.
Jangid,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.