Estoy modificando las combinaciones de teclas de GNU Readline en Bash. Específicamente, deseo lograr el siguiente efecto de mapeo:
Control' ==>
'I'
ControlShift' ==>
"I"
Control` ==>
`I`
Control[ ==>
[I]
ControlShift[ ==>
{I}
donde I
indica la posición del cursor después de la expansión.
He probado la siguiente configuración en mi ~/.inputrc
. Sin embargo, sólo el <C-`>
mapeo funciona como se esperaba:
$include /etc/inputrc
$if mode=emacs
"\C-\'": "\'\'\C-b"
"\C-`": "``\C-b"
"\C-\"": "\"\"\C-b"
"\C-{": "{}\C-b"
"\C-[": "[]\C-b"
$endif
Me pregunto qué hay de malo en mi configuración y cómo realizar estas asignaciones correctamente (si es posible).
Respuesta1
En una terminal, generalmente no puedes obtenertodocombinaciones de modificadores de control y cambio para que sean valores diferentes:
- la base paracontrolycambioes de esquemas US-ASCII (y similares) que definencontrolycambiopara los caracteres alfabéticos más unpocoscaracteres de puntuación.
- la combinacióncontrol+cambiogeneralmente no tiene ningún efecto, exceptoespecialllaves.
- algunos terminales definen secuencias de escape para control/cambio conespecialteclas (como las teclas de cursor y de función). La tabclave no es una de esas claves.
Aquí hay una captura de pantalla para ilustrar los caracteres de control usando ASCII: