Чому `bind` та` .inputrc` поводяться по-різному?


14

Я намагаюся зробити правильно і вкласти свої ключові прив’язки ~/.inputrc.

Однак виявляється, що я мушу змінитись

bind '"\e\C-j":"\e[1~quiet \e[4~\n"'

в

"\e\C-j": "\eOHquiet \eOF\n"

Тепер \eOH(прив’язані до nav-block-pos1 beginning-of-line) і \eOF( прив'язані до nav-block-end end-of-line) самі є прив'язками в моїй конфігурації, на яку я, можливо, не завжди можу покластися.

Отже, головне питання, чому прив'язка до num-block-pos1 ( \e[1~) та num-block-end ( \e[4~) працює з bindмоїм, але не в моєму ~/.inputrc?


Редагувати:

Вся справа стає ще складнішою, коли я зрозумів, що \e\C-jпрацює лише для Gnome Terminial (або, мабуть, і xterm також, хто знає ...).

Для мого TTY це повинно бути

"\e\C-m": "\e[1~_quiet \e[4~\n"

Так це так, що різні VT мають різні реалізації як інтерпретувати ключі чи що?


Це задокументовано у посібнику користувача GNU Readline для користувача , розділ 1.3. Цей keymapпараметр використовується для встановлення того, який тип представлення ключів використовується у визначеннях ключових прив'язок. Відповідна інформація: superuser.com/questions/286781/… cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC9 wiki.archlinux.org/index.php/Readline
Ярослав Рахматуллін

@ ЯрославРахматуллін Наскільки саме це стосується різниці в поведінці між використанням bindта використанням inputrcдля фактичного зв’язування. Чи не повинні вони використовувати однакові налаштування?

Відповіді:


2

Ваш емулятор термінала може працювати в одному з двох режимів: режимі додатків та режимі курсору (див. Http://homes.mpimf-heidelberg.mpg.de/%7Erohm/computing/mpimf/notes/terminal.html ). Це залежить від того, в якому режимі працює ваша конкретна програма, що визначає, яку послідовність евакуації вам потрібно надіслати.

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