Понимание управляющих символов в.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 ответ
Это escape-последовательности управляющего кода ANSI, которые передаются при нажатии различных не буквенно-цифровых клавиш на "терминальной" клавиатуре.
\ e означает символ ASCII "ESCAPE" (восьмеричное 033 шестнадцатеричное 1B десятичное 27). Что является частью введения последовательности команд (CSI).
Escape [ 2 ~ последовательность символов, передаваемая при нажатии клавиши с надписью "Вставить" на терминале VT220 (или более поздней версии ).
Многие из этих соглашений были приняты в программном обеспечении, таких как консоли / оболочки xterm и Linux - часто расширяются различными, иногда несовместимыми способами.
Использование этих последовательностей в функции READLINE в bash описано на страницах руководства для readline.
Во второй форме, "keyseq": имя-функции или макрос, keyseq отличается
от имени ключа выше в этой строке, обозначающей всю последовательность клавиш, может
быть указанным путем размещения последовательности в двойных кавычках. Некоторые GNU
Можно использовать экранирование ключа стиля Emacs, как в следующем примере, но
имена символических символов не распознаются.
"\Cu": универсальный аргумент
"\ Cx\Cr": перечитать файл инициализации
"\e[11~": "Функциональная клавиша 1"
Чтобы получить список управляющих последовательностей, которым соответствуют клавиши клавиатуры, вы можете использовать такую команду, как infocmp -L -1 или же infocmp -L -1 xterm