Bemærk: Jeg har endnu ikke fundet årsagen til, hvorfor dette er nødvendigt nogle gange, men dette burde løse det for dig.
Der er to tegn til at angive start/stop af ikke-udskrivbare tegn i readline/libedit (?), 0x01 og 0x02.
Så hvis du tilføjer disse før og efter de ikke-printbare sekvenser i din PROMPT1, burde det virke. Resultatet i dit tilfælde ville være:
\set PROMPT1 '%001%[%033[1;33;40m%]%002%[email protected]%/%R%001%[%033[0m%]%002%# '
Opdatering: Det ser dog ud til, at dette skal håndteres i psql, et eller andet sted må de gå tabt på en eller anden måde. Måske USE_READLINE
er ikke defineret? Se:Linje 286 i src/bin/psql/prompt.c