Qual é o formato geral do nome da chave para ligações de teclas no arquivo "inputrc"?


17

Entendo que o formato para as combinações de teclas no inputrcarquivo é:

keyname: function-name or macro

Para keyname, vi coisas como:

"\e[B"
"\e[1~"
"\e[5D"
"\M-l"
"\C-[OD"
"\e\e[D"

Qual é o significado desses nomes-chave e qual é o formato geral para o nome-chave? Compartilhe um link para documentos.


2
Para seus documentos, recomendo readline(3)consultar a página de manual ou o manual do usuário da readline .
Jw013 11/11

11
Verifique se a configuração de chave (readline - inputrc) via: $ ligam -p
vigo

Respostas:


12

A ligação de teclas pode ser feita usando um dos seguintes formulários:

  1. keyname: command_name
  2. "keystroke_sequence": command_name

Na primeira forma, você pode soletrar o nome para uma única chave. Por exemplo, CONTROL-U seria gravado como control-u. Isso é útil para vincular comandos a chaves únicas.

No segundo formulário, você especifica uma sequência que descreve uma sequência de chaves que serão vinculadas ao comando. Você deu como exemplo as seqüências de escape de barra invertida emacs-tyle para representar as teclas especiais

\C- Controle
\M- Meta
\e- Escape

Você pode especificar uma barra invertida usando outra barra invertida - \\. Da mesma forma 'e "pode ser escapado também - \'e\"

Atualizar

Esses caracteres são interpretados pelo seu terminal quando você pressiona teclas especiais. Você não deseja vincular alfabetos e números regulares em sua ligação de chave, pois pode usá-los regularmente e pode causar problemas quando você acidentalmente bate em uma combinação que foi mapeada em seu arquivo ~/.inputrcou /etc/inputrc.

[1~ is what is interpreted by your terminal when you press your HOME button. 

Para saber mais, basta digitar readno prompt do terminal e pressionar todos os tipos de teclas especiais, como teclas de função, HOME, END, teclas de seta etc. e ver o que é exibido.

Aqui está uma pequena referência que eu achei que pode oferecer algum entendimento básico. Boa sorte! :)


2
O que significa \e[1~, \M-le \C-[ODsignifica? A \e, \Me \Cpeças são claras. E o resto? Por exemplo: [1~- Devo pressionar Shift+ {+ 1+ Shift+ `?
Misha Moroshko

Eu atualizei a resposta para você. Espero que ajude!
jaypal singh

O link está quebrado. Ainda não sei para que serve o til ou o suporte aberto ??
Carl Smith
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.