Uwaga: Muszę jeszcze znaleźć główną przyczynę, dla której czasami jest to konieczne, jednak powinno to naprawić.
Istnieją dwa znaki wskazujące początek/zatrzymanie niedrukowalnych znaków w readline/libedit (?), 0x01 i 0x02.
Tak więc, jeśli dodasz je przed i po niedrukowalnych sekwencjach w PROMPT1, powinno działać. Wynik w twoim przypadku będzie następujący:
\set PROMPT1 '%001%[%033[1;33;40m%]%002%[email protected]%/%R%001%[%033[0m%]%002%# '
Aktualizacja: Wydawałoby się, że powinno to być obsługiwane w psql, gdzieś muszą się jakoś zgubić. Może USE_READLINE
nie jest zdefiniowany? Zobacz:Wiersz 286 w src/bin/psql/prompt.c