Los enlaces Readline no funcionan con los modificadores Control y Shift

Los enlaces Readline no funcionan con los modificadores Control y Shift

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 Iindica 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:

ingrese la descripción de la imagen aquí

información relacionada