Primeiro, você precisa determinar se o seu terminal envia sequências de escape diferentes para essas combinações de teclas. Os aplicativos executados nos terminais obtêm caracteres como entrada, não como chaves. As teclas de função são codificadas como caracteres de controle ou como seqüências de escape começando com o caractere de escape (que você pode escrever como \eem uma ligação de tecla).
Para ver a sequência de escape enviada por uma combinação de teclas em um terminal, pressione Ctrl+ Vno prompt do shell e, em seguida, pressione a combinação de teclas. Por exemplo, se eu pressionar Ctrl+ VCtrl+ Leftem um prompt de shell, eu vejo ^[O5D. ^[é o caractere de escape, então eu precisaria vincular o \eO5DMutt para fazê-lo reagir ao Ctrl+ Left:
bind editor \eO5D backward-word
Alguns terminais enviam a mesma sequência de escape para a mesma chave com diferentes modificadores. Se for esse o caso, você precisará descobrir como alterar o comportamento do terminal ou mudar para um terminal diferente.
Parece bom, mas não funciona. \eé a chave de escape, e não o caractere de escape ...
Profpatsch
@ Profofatsch Estranho, essa ligação funciona para mim. Eu uso o Mutt 1.5 desde sempre, talvez 1,4 funcione de maneira diferente? Funciona se você usar \euma macro macro editor \e[O5D \eb:?
Gilles 'SO- stop be evil'
1
Estou no Terminator, quando acerto Ctrl+Down, recebo ^[[1;5B, não funciona bind index \e[1;5B commande também não \e1;5B . Ah, eu trabalho com o Mutt 1.5.21 (Arch.;) #
Profpatsch
1
@ Profofatsch Ok, eu posso reproduzir isso. Parece haver uma limitação para 5 caracteres: bind editor \e[1\;5 backward-wordfunciona para mim (e insere um extra Dquando entro ESC [ 1 ; 5 D), mas bind editor \e[1\;5D backward-wordresulta em ESC [ 1 ; 5 Dnada. Vejo uma limitação para 8 caracteres no código-fonte ( MAX_SEQ), mas nada que seria acionado em 5 caracteres.
Gilles 'SO- stop be evil'
@Profpatsch Uma solução alternativa seria fazer o seu terminal enviar seqüências mais curtas. Não sei se o Terminator suporta isso.
Em seguida, pressionando a tecla desejada (como Ctrl + seta), você pode aprender como fazer referência a qualquer tecla. No meu caso, recebo o <C-Up>Ctrl + Up.
Caso você tenha conseguido usar :exec what-keypara obter essas informações, mas não tenha conseguido descobrir "qual tecla" pressionar para sair do what-keycomando, a sequência de teclas a sair é Ctrl-g.
KDN 28/01
@KDN: Obrigado. Estava ficando um pouco embaraçoso. ;)
Teekin 13/06/19
O @KDN Ctrl-gé usado para cancelar comandos no emacs e em muitos shells unix.
\e
é a chave de escape, e não o caractere de escape ...\e
uma macromacro editor \e[O5D \eb
:?Ctrl+Down
, recebo^[[1;5B
, não funcionabind index \e[1;5B command
e também não\e1;5B
. Ah, eu trabalho com o Mutt 1.5.21 (Arch.;) #bind editor \e[1\;5 backward-word
funciona para mim (e insere um extraD
quando entroESC [ 1 ; 5 D
), masbind editor \e[1\;5D backward-word
resulta emESC [ 1 ; 5 D
nada. Vejo uma limitação para 8 caracteres no código-fonte (MAX_SEQ
), mas nada que seria acionado em 5 caracteres.Encontrei a resposta correta aqui :
Mutt interno, use o comando
Em seguida, pressionando a tecla desejada (como Ctrl + seta), você pode aprender como fazer referência a qualquer tecla. No meu caso, recebo o
<C-Up>
Ctrl + Up.fonte
:exec what-key
para obter essas informações, mas não tenha conseguido descobrir "qual tecla" pressionar para sair dowhat-key
comando, a sequência de teclas a sair éCtrl-g
.Ctrl-g
é usado para cancelar comandos no emacs e em muitos shells unix.