
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 Alt
auf meiner Tastatur der Fall ist), verstehe aber nicht, was die anderen Steuerzeichen [
, ~
, 5D
usw. 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 -1
oder verwenden.infocmp -L -1 xterm