Hinweis: Ich muss noch die eigentliche Ursache dafür finden, warum dies manchmal notwendig ist, aber dies sollte es für Sie beheben.
Es gibt zwei Zeichen, um Start/Stop von nicht druckbaren Zeichen in readline/libedit (?) anzuzeigen, 0x01 und 0x02.
Wenn Sie diese also vor und nach den nicht druckbaren Sequenzen in Ihrem PROMPT1 hinzufügen, sollte es funktionieren. Das Ergebnis in Ihrem Fall wäre:
\set PROMPT1 '%001%[%033[1;33;40m%]%002%[email protected]%/%R%001%[%033[0m%]%002%# '
Aktualisierung: Es scheint jedoch, dass dies in psql behandelt werden sollte, irgendwo müssen sie irgendwie verloren gehen. Vielleicht USE_READLINE
ist nicht definiert? Siehe:Zeile 286 in src/bin/psql/prompt.c