Моя учетная запись 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 относительно темы, но я не смог найти раздел, объясняющий что последовательности символов \e[1~
, \e[5C
, \e\e[D
, и т.д. средний.
Я думаю, что считал где-нибудь это \e
средства meta character
(который я думаю, Alt
в моей клавиатуре), но не понимают что другие управляющие символы [
, ~
, 5D
и т.д. средний.
Кто-либо знает о хорошей ссылке по теме?
Это escape-последовательности кода управления ANSI, которые передаются, когда различный не алфавитно-цифровые клавиши нажаты на "терминальной" клавиатуре.
\e означает символ "ESCAPE" ASCII (восьмеричные 033 шестнадцатеричных числа 1B десятичные 27). Который является частью введения последовательности команды (CSI).
Escape [ 2 ~
последовательность символов, переданная, когда Вы нажимаете клавишу, маркировал "Insert" на VT220 (или позже) терминалом.
Многие из этих конвенций были приняты в программном обеспечении, таком как xterm и консоли Linux / оболочки - часто расширяемый в различном, иногда несовместимых путях.
Использование этих последовательностей в функции READLINE удара описано в страницах справочника для readline
In the second form, "keyseq":function-name or macro, keyseq differs from keyname above in that strings denoting an entire key sequence may be specified by placing the sequence within double quotes. Some GNU Emacs style key escapes can be used, as in the following example, but the symbolic character names are not recognized. "\C-u": universal-argument "\C-x\C-r": re-read-init-file "\e[11~": "Function Key 1"
Получить список, которого escape-последовательности соответствуют, какие клавиши на клавиатуре, можно использовать команду такой как infocmp -L -1
или infocmp -L -1 xterm