Compreendendo os caracteres de controle em .inputrc

Compreendendo os caracteres de controle em .inputrc

Minha conta Linux em uma máquina remota vem com o seguinte pré-definido.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

Estou lendo a documentação do GNU bashsobre o tema, mas não consegui encontrar uma seção explicando o que significam as sequências de caracteres \e[1~, \e[5C, \e\e[D, etc.

Acho que li em algum lugar que \esignifica meta character(que acho que está Altno meu teclado), mas não entendo o que significam os outros caracteres de controle [, ~etc.5D

Alguém conhece uma boa referência sobre o assunto?

Responder1

Estes sãoSequências de escape do código de controle ANSIque são transmitidos quando várias teclas não alfanuméricas são pressionadas em um teclado "terminal".

\e significa o caractere ASCII "ESCAPE" (octal 033 hex 1B decimal 27). Que faz parte de uma introdução à sequência de comandos (CSI).

Escape [ 2 ~é uma sequência de caracteres transmitida quando você pressiona a tecla "Inserir" em umTerminal VT220 (ou posterior).

Muitas dessas convenções foram adotadas em softwares como xterm e consoles/shells Linux - muitas vezes estendidas de várias maneiras, às vezes incompatíveis.

O uso dessas sequências na função READLINE do bash é descrito nopáginas de manualparaLeia a linha

       Na segunda forma, "keyseq":nome da função ou macro, keyseq difere
       do nome-chave acima, pois as strings que denotam uma sequência de teclas inteira podem
       ser especificado colocando a sequência entre aspas duplas. Alguns GNU
       Escapes de teclas no estilo Emacs podem ser usados, como no exemplo a seguir, mas
       os nomes dos caracteres simbólicos não são reconhecidos.

          "\Cu": argumento universal
          "\Cx\Cr": reler o arquivo de inicialização
          "\e[11~": "Tecla de Função 1"

Para obter uma lista de quais sequências de escape correspondem a quais teclas do teclado, você pode usar um comando como infocmp -L -1ouinfocmp -L -1 xterm

informação relacionada