Ligações Readline não funcionam com modificadores Control e Shift

Ligações Readline não funcionam com modificadores Control e Shift

Estou ajustando as combinações de teclas do GNU Readline no Bash. Especificamente, desejo alcançar o seguinte efeito de mapeamento:

Control' ==> 'I'

ControlShift' ==> "I"

Control` ==> `I`

Control[ ==> [I]

ControlShift[ ==> {I}

onde Iindica a posição do cursor após a expansão.

Eu tentei a seguinte configuração no meu ~/.inputrc. No entanto, apenas o <C-`>mapeamento funciona conforme o esperado:

$include /etc/inputrc
$if mode=emacs
"\C-\'": "\'\'\C-b"
"\C-`": "``\C-b"
"\C-\"": "\"\"\C-b"
"\C-{": "{}\C-b"
"\C-[": "[]\C-b"
$endif

Estou me perguntando o que há de errado com minha configuração e como fazer esses mapeamentos corretamente (se possível)?

Responder1

Em um terminal, você geralmente não consegue obtertodoscombinações de modificadores de controle e deslocamento com valores diferentes:

  • a base paraao controleemudançavem de esquemas US-ASCII (e similares) que definemao controleemudançapara os caracteres alfabéticos mais umalgunscaracteres de pontuação.
  • A combinaçãocontrole + mudançageralmente não tem efeito, excetoespecialchaves.
  • alguns terminais definem sequências de escape para controle/mudança comespecialteclas (como teclas de cursor e de função). A tabchave não é uma dessas chaves.

Aqui está uma captura de tela para ilustrar os caracteres de controle usando ASCII:

insira a descrição da imagem aqui

informação relacionada