Das Hinzufügen von ANSI-Farb-Escape-Sequenzen zu einer Bash-Eingabeaufforderung führt beim Aufrufen / Bearbeiten von Befehlen zu einer falschen Cursorposition

Wenn ich meine Eingabeaufforderung wie folgt einstelle:

export PS1='\033[0;33m[\u@\h \w]\$ \033[00m'

Die Farbe der Eingabeaufforderung ist gelb und alles nach dem Zeichen '$1$#39; ist die Standardfarbe des Terminals. Das erwarte ich. Wenn ich jedoch eine Befehlszeile aufrufe und versuche, sie zu bearbeiten, bewege ich den Cursor - entweder nach oben / Strg-A (set -o emacs) oder ESC K (set -o vi), wenn ich versuche, die Befehlszeile zu bearbeiten lang genug ist, befindet sich der Cursor nicht am Anfang des Befehls. Wenn Sie entweder Strg-A (set -o emacs) oder ^ (set -o vi) eingeben, bewegt sich der Cursor nicht an den Anfang der aufgerufenen Zeile auf dem Bildschirm. Wenn Sie versuchen, den Cursor an das Ende der Zeile zu positionieren (Strg-E oder $, abhängig davon), werden mehrere Zeichen nach dem scheinbaren Ende der Zeile eingefügt. Es sieht so aus, als würde Bash durch die Escape-Zeichen verwirrt, die ich der Eingabeaufforderung hinzugefügt habe. Muss ich mich nur darum kümmern, meine Eingabeaufforderung in eine monochrome zu ändern, wenn ich zurückgerufene Zeilen bearbeiten möchte, oder gibt es eine Möglichkeit, Bash zu erhalten, um die Bearbeitung zurückgerufener Befehle mit einer farbenfrohen Eingabeaufforderung korrekt zu ermöglichen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage