
Моя учетная запись 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