web-dev-qa-db-fra.com

Comprendre les caractères de contrôle dans .inputtrc

Mon compte Linux dans une machine distante est livré avec le prédéfini suivant .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

Je lis le GNU Bash Documentation sur le sujet , mais je n'ai pas été en mesure de trouver une section expliquant ce que les séquences de caractères \e[1~, \e[5C, \e\e[D, etc. signifie.

Je pense que j'ai lu quelque part que \e signifie le meta character (que je pense est Alt dans mon clavier), mais ne comprenez pas ce que les autres personnages de contrôle [, ~, 5D etc. signifie.

Quelqu'un sait une bonne référence sur le sujet?

22

Celles-ci sont séquences d'échappement de code de contrôle ANSI transmises lorsque diverses touches non alphanumériques sont appuyées sur un clavier "Terminal".

\ e signifie le caractère ASCII "ESCAPE" (OCTAL 033 HEX 1B Decimal 27). qui fait partie d'une séquence de commande Introduction (CSI).

Escape [ 2 ~ est une séquence de caractères transmise lorsque vous appuyez sur la touche "INSERT" sur A Terminal VT220 (ou version ultérieure) .

Beaucoup de ces conventions ont été adoptées dans des logiciels tels que des consoles/coquilles Xterm et Linux - souvent étendues de différentes manières parfois incompatibles.

L'utilisation de ces séquences dans la fonction de lecture en lecture de Bash est décrite dans les Pages de Man pour readline

[- dans les citations doubles. Certains GNU 
 Les évasions clés de style EMACS peuvent être utilisées, comme dans l'exemple suivant, mais [.____] Les noms de caractères symboliques ne sont pas reconnus. [.____] [ argument universel 
 "\ cx\cr": re-lu-init-file [.____] "\ e [11 ~": "Clé de fonction 1" [.____]

Pour obtenir une liste des séquences d'échappement correspondant aux touches de clavier, vous pouvez utiliser une commande telle que infocmp -L -1 ou infocmp -L -1 xterm

21
RedGrittyBrick