Понимание управляющих символов в .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 относительно темы, но я не смог найти раздел, объясняющий что последовательности символов \e[1~, \e[5C, \e\e[D, и т.д. средний.

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

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

21
задан 11.04.2011, 18:00

1 ответ

Это 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

21
ответ дан 07.12.2019, 10:04

Теги

Похожие вопросы