Який загальний формат імені ключа для прив'язки клавіш у файлі "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. keyname: ім'я_команди
  2. "keystroke_sequence": ім'я_команди

У першій формі ви можете прописати ім'я для одного ключа. Наприклад, CONTROL-U буде записаний як control-u. Це корисно для прив’язки команд до окремих клавіш.

У другій формі ви вказуєте рядок, що описує послідовність ключів, які будуть прив’язані до команди. Таку, яку ви подали як приклад, є послідовності втечі зворотної косої лінії emacs-tyle для відображення спеціальних клавіш

\C- Управління
\M- мета
\e- втеча

Ви можете вказати зворотну косу рису за допомогою іншої косої риски - \\. Точно так же 'і "можна уникнути занадто -\' і\"

Оновлення

Ці символи - це те, що інтерпретується терміналом при натисканні спеціальних клавіш. Ви не хочете прив'язувати звичайні алфавіти та цифри у вашому ключі, тому що ви можете використовувати їх регулярно, і це може спричинити проблеми, коли ви випадково потрапили на комбінацію, яка була відображена у вашому файлі ~/.inputrcчи /etc/inputrcфайлі.

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

Щоб дізнатися більше, просто введіть read у підказку терміналу і натисніть всі типи спеціальних клавіш, такі як функціональні клавіші, ДОМАШНЯ, КРАЧНА, клавіші зі стрілками тощо, і подивіться, що відображатиметься.

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


2
Що \e[1~, \M-lі \C-[ODзначить? І \e, \Mі \Cчастини зрозумілі. Як щодо решти? Наприклад: [1~- Чи слід натискати Shift+ {+ 1+ Shift+ `?
Мишко Морошко

Я оновив відповідь за вас. Сподіваюся, що це допомагає!
jaypal singh

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