bash - prompt: Cursor springt zu weit nach Links - nach $PS1 Modifikation

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
buhtz
Beiträge: 1209
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

bash - prompt: Cursor springt zu weit nach Links - nach $PS1 Modifikation

Beitrag von buhtz » 12.12.2020 12:45:25

X-Post

Ich hab ein bisschen an meiner $PS1 rumgespielt.

Beim SSH-Login sieht es aus wie erwartet. Der Cursor sitzt auch zwei Zeichen rechts von $.
Wenn ich aber anfange mit der Pfeiltaste-Hoch durch die bash-command-history zu zappen landet der Cursor und der history-Eintrag mitten in dem prompt, also links vom $. Das passiert nicht gleich beim Ersten history Eintrag, meist beim Zweiten oder Dritten.

Das sieht dann z.B. so aus.

Code: Alles auswählen

admin@OLAF:~$ 
admivim .bashrcare -p PS1
Hier ist meine $PS1.

Code: Alles auswählen

admin@OLAF:~$ declare -p PS1
declare -- PS1="\\[\\e]0;\\u@\\h: \\w\\a\\]\${debian_chroot:+(\$debian_chroot)}\\[\\e[1m\\e[38;5;208m\\e[48;5;24m\\u@\\h\\[\\e[0m\\]:\\[\\e[97m\\]\\w\\[\\e[0m\\]\\\$ "
Das ist ein GIF. Muss man hier scheinbar draufklicken, damit die Animation startet.
2937
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

buhtz
Beiträge: 1209
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: bash - prompt: Cursor springt zu weit nach Links - nach $PS1 Modifikation

Beitrag von buhtz » 14.12.2020 14:48:17

Wunderschöne sehr ausführliche Antwort: https://unix.stackexchange.com/a/624279/136851

Man unterscheidet zwischen zwischen nichtdruckbaren und druckbaren Zeichen. Ok, wusste ich schon.
ABer das muss man wohl explizit markieren, damit der prompt die Cursorposition korrekt berechnen kann.
Bei mir fehlte das, den nichtdruckbaren Bereich, abschließende \].
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Antworten