Понимание управляющих символов в.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