Я настраиваю привязки клавиш GNU Readline в Bash. В частности, я хочу добиться следующего эффекта отображения:
Control' ==>
'I'
ControlShift' ==>
"I"
Control` ==>
`I`
Control[ ==>
[I]
ControlShift[ ==>
{I}
где I
указывает положение курсора после расширения.
Я попробовал следующую конфигурацию в моем ~/.inputrc
. Однако только <C-`>
отображение работает так, как ожидалось:
$include /etc/inputrc
$if mode=emacs
"\C-\'": "\'\'\C-b"
"\C-`": "``\C-b"
"\C-\"": "\"\"\C-b"
"\C-{": "{}\C-b"
"\C-[": "[]\C-b"
$endif
Мне интересно, что не так с моей конфигурацией и как правильно выполнить эти сопоставления (если это возможно)?
решение1
В терминале вы, как правило, не можете получитьвсекомбинации модификаторов control и shift, которые будут иметь различные значения:
- основа дляконтрольисдвигиз схем US-ASCII (и подобных), которые определяютконтрольисдвигдля буквенных символов плюснемногознаки препинания.
- комбинацияконтроль+шифтобычно не имеет никакого эффекта, за исключениемособенныйключи.
- некоторые терминалы определяют управляющие последовательности для управления/переключения сособенныйклавиши (такие как клавиши курсора и функциональные клавиши). Клавиша tabне является одной из этих клавиш.
Ниже представлен снимок экрана, иллюстрирующий управляющие символы с использованием ASCII: