Каков общий формат имени ключа для привязок клавиш в файле «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+ `?
Миша Морошко

Я обновил ответ для вас. Надеюсь, это поможет!
Джайпал Сингх

Ссылка не работает. Все еще не знаете, для чего предназначены тильда или открытая скобка ??
Карл Смит
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.