Readline-Bindungen funktionieren nicht mit Control- und Shift-Modifikatoren

Readline-Bindungen funktionieren nicht mit Control- und Shift-Modifikatoren

Ich optimiere die Tastenkombinationen von GNU Readline in Bash. Insbesondere möchte ich den folgenden Mapping-Effekt erzielen:

Control' ==> 'I'

ControlShift' ==> "I"

Control` ==> `I`

Control[ ==> [I]

ControlShift[ ==> {I}

wobei Idie Cursorposition nach der Erweiterung angibt.

Ich habe in meinem folgende Konfiguration ausprobiert ~/.inputrc. Allerdings <C-`>funktioniert nur das Mapping wie erwartet:

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

Ich frage mich, was mit meiner Konfiguration nicht stimmt und wie ich diese Zuordnungen (falls möglich) richtig vornehme.

Antwort1

In einem Terminal erhalten Sie im Allgemeinen nichtalleKombinationen von Strg- und Umschalttasten können unterschiedliche Werte haben:

  • die Grundlage fürKontrolleUndSchichtstammt aus US-ASCII-Schemata (und ähnlichen Schemata), die definierenKontrolleUndSchichtfür die alphabetischen Zeichen plus einwenigeSatzzeichen.
  • die KombinationStrg+Umschalthat normalerweise keine Wirkung, außerbesondersSchlüssel.
  • Einige Terminals definieren Escape-Sequenzen für Strg/Shift mitbesondersTasten (wie Cursor- und Funktionstasten). Die tabTaste ist keine dieser Tasten.

Hier ein Screenshot zur Veranschaulichung der Steuerzeichen mittels ASCII:

Bildbeschreibung hier eingeben

verwandte Informationen