Grundlegendes zu Steuerzeichen in .inputrc

Grundlegendes zu Steuerzeichen in .inputrc

Mein Linux-Konto auf einem Remote-Rechner verfügt über die folgenden vordefinierten.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

Ich lese die GNU-Bash-Dokumentationzum Thema, aber ich konnte keinen Abschnitt finden, der erklärt, was die Zeichenfolgen \e[1~, \e[5C, \e\e[D, usw. bedeuten.

Ich glaube, ich habe irgendwo gelesen, dass damit \e„das“ gemeint ist meta character(was meiner Meinung nach Altauf meiner Tastatur der Fall ist), verstehe aber nicht, was die anderen Steuerzeichen [, ~, 5Dusw. bedeuten.

Kennt jemand eine gute Referenz zu diesem Thema?

Antwort1

Diese sindANSI-Steuercode-Escapesequenzendie übertragen werden, wenn verschiedene nicht alphanumerische Tasten auf einer „Terminal“-Tastatur gedrückt werden.

\e steht für das ASCII-Zeichen „ESCAPE“ (Oktal 033, Hex 1B, Dezimal 27). Dieses ist Teil einer Befehlssequenzeinführung (CSI).

Escape [ 2 ~ist eine Zeichenfolge, die übertragen wird, wenn Sie die Taste "Einfügen" auf einemVT220-Terminal (oder höher).

Viele dieser Konventionen wurden in Software wie xterm und Linux-Konsolen/-Shells übernommen – oft auf verschiedene, manchmal inkompatible Weise erweitert.

Die Verwendung dieser Sequenzen in der READLINE-Funktion der Bash wird beschrieben inman-SeitenfürZeile lesen

       In der zweiten Form, "keyseq":Funktionsname oder Makro, unterscheidet sich keyseq
       vom obigen Schlüsselnamen, da Zeichenfolgen, die eine ganze Tastenfolge bezeichnen,
       angegeben werden, indem die Sequenz in doppelte Anführungszeichen gesetzt wird. Einige GNU
       Es können Emacs-artige Tastenkombinationen verwendet werden, wie im folgenden Beispiel, aber
       die symbolischen Zeichennamen werden nicht erkannt.

          "\Cu": universelles Argument
          "\Cx\Cr": Init-Datei erneut einlesen
          "\e[11~": "Funktionstaste 1"

Um eine Liste der Escape-Sequenzen zu erhalten, die den jeweiligen Tasten auf der Tastatur entsprechen, können Sie einen Befehl wie infocmp -L -1oder verwenden.infocmp -L -1 xterm

verwandte Informationen