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 I
die 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: