Понимание управляющих символов в .inputrc

Понимание управляющих символов в .inputrc

Моя учетная запись Linux на удаленной машине имеет следующие предопределенные параметры:.inputrc

"\e[1~": beginning-of-line
"\e[4~": end-of-line
“\e[5~”: history-search-backward
“\e[6~”: history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

set completion-ignore-case on
set bell-style visible
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on

Я читаю документацию GNU bashпо теме, но мне не удалось найти раздел, объясняющий, что означают последовательности символов \e[1~, \e[5C, \e\e[D, и т. д.

Кажется, я где-то читал, что это означает \e( meta characterкажется, это есть Altна моей клавиатуре), но не понимаю, что означают другие управляющие символы [, и т. д.~5D

Кто-нибудь знает хорошую ссылку по этой теме?

решение1

ЭтоПоследовательности управляющего кода ANSIкоторые передаются при нажатии различных не буквенно-цифровых клавиш на клавиатуре «терминала».

\e означает символ ASCII "ESCAPE" (восьмеричное 033, шестнадцатеричное 1B, десятичное 27). Является частью введения последовательности команд (CSI).

Escape [ 2 ~это последовательность символов, передаваемая при нажатии клавиши с надписью «Вставить» наТерминал VT220 (или более поздней версии).

Многие из этих соглашений были приняты в программном обеспечении, таком как xterm и консоли/оболочки Linux, часто расширенные различными, иногда несовместимыми способами.

Использование этих последовательностей в функции READLINE оболочки bash описано встраницы руководствадляридлайн

       Во второй форме, "keyseq":имя-функции или макрос, keyseq отличается
       из keyname выше в том смысле, что строки, обозначающие целую последовательность клавиш, могут
       быть указана путем помещения последовательности в двойные кавычки. Некоторые GNU
       Можно использовать экранированные клавиши в стиле Emacs, как в следующем примере, но
       символические имена персонажей не распознаются.

          "\Cu": универсальный аргумент
          "\Cx\Cr": повторное чтение файла инициализации
          "\e[11~": "Функциональная клавиша 1"

Чтобы получить список управляющих последовательностей, соответствующих каким клавишам клавиатуры, вы можете использовать команду, например infocmp -L -1илиinfocmp -L -1 xterm

Связанный контент