Каков общий формат имени ключа для привязок клавиш в файле «inputrc»?

17

Я понимаю, что формат для привязки клавиш в inputrcфайле:

keyname: function-name or macro

Для ключевого имени я видел такие вещи, как:

"\e[B"
"\e[1~"
"\e[5D"
"\M-l"
"\C-[OD"
"\e\e[D"

Каково значение этих имен ключей и каков общий формат имени ключа? Пожалуйста, поделитесь ссылкой на документы.

Миша Морошко
источник
2
Для ваших документов я бы порекомендовал взглянуть на справочнуюreadline(3) страницу или руководство пользователя readline .
jw013
1
Проверьте свою конфигурацию ключа (readline - inputrc) через: $ bind -p
vigo

Ответы:

12

Связывание клавиш можно выполнить с помощью одной из следующих форм:

  1. имя ключа: имя_команды
  2. "последовательность нажатий клавиш": имя_команды

В первой форме вы можете прописать имя для одного ключа. Например, CONTROL-U будет написано как control-u. Это полезно для привязки команд к отдельным ключам.

Во второй форме вы указываете строку, которая описывает последовательность ключей, которые будут привязаны к команде. В качестве примера вы привели escape-последовательности обратной косой черты в emacs для представления специальных ключей.

\C- Управление
\M- Мета
\e- Побег

Вы можете указать обратную косую черту, используя другую обратную косую черту - \\. Точно так же 'и "можно избежать - \'и\"

Обновить

Эти символы интерпретируются вашим терминалом при нажатии специальных клавиш. Вы не хотите связывать обычные алфавиты и цифры в привязке клавиш, так как вы можете использовать их на регулярной основе, что может вызвать проблемы, когда вы случайно нажмете комбинацию, которая была отображена в вашем файле ~/.inputrcили /etc/inputrcфайле.

[1~ is what is interpreted by your terminal when you press your HOME button. 

Чтобы узнать больше, просто введите readв своем терминале запрос и нажмите все типы специальных клавиш, такие как функциональные клавиши, HOME, END, клавиши со стрелками и т. Д., И посмотрите, что отображается.

Вот небольшая ссылка, которую я нашел, которая может предложить некоторое базовое понимание. Удачи! :)

Джайпал Сингх
источник
2
Что \e[1~, \M-lи \C-[ODзначит? \e, \MИ \Cчасти очевидны. Как насчет отдыха? Например: [1~- Должен ли я нажать Shift+ {+ 1+ Shift+ `?
Миша Морошко
Я обновил ответ для вас. Надеюсь, это поможет!
Джайпал Сингх
Ссылка не работает. Все еще не знаете, для чего предназначены тильда или открытая скобка ??
Карл Смит