2013-10-02 4 views
5

Ich bekomme einen Papierkorb nach der Eingabeaufforderung, wenn ich durch den Verlauf blättere, wenn ich Farben zu meiner Eingabeaufforderung hinzufüge.Farben in der PSQL-Eingabeaufforderung

Ich habe die vorgeschlagene Farbe prompt Befehl aus dem postgres doc versucht:

\set PROMPT1 '%[%033[1;33;40m%]%[email protected]%/%R%[%033[0m%]%# ' 

Ich habe versucht, auch viele andere prompt Beispiele, die ich mit google gefunden, aber mit dem gleichen Ergebnis.

So, nachdem die Aufforderung Ich habe einen gelben Prompt so etwas wie diese Einstellung:

[email protected]=# 

ich dann die Abfrage aus:

[email protected]=# select * from country; 

Dann flick ich durch die Geschichte mit . Dies würde mir die select-line diejenigen mehr, sondern ich:

[email protected]=# \set PROMPT1 'select * from country; 

Notiere die \set... vor dem select, die ein Überbleibsel aus der anfänglichen promt-Einstellung ist.

Ich habe auch ähnliches Ergebnis, wenn ich die \set PROMPT1 setzte -command in .pslqrc

ich das gleiche Ergebnis in beiden xterm und gnome-terminal zu bekommen. Ich habe meine Bash-Eingabe auf ähnliche Weise gefärbt, aber ich habe keine Probleme mit dieser Aufforderung.

Was habe ich falsch gemacht?

Antwort

6

Hinweis: Ich habe noch die Ursache dafür zu finden, warum dies manchmal notwendig ist, aber dies sollte es für Sie beheben.

Es gibt zwei Zeichen, die Start/Stopp von nicht druckbaren Zeichen in readline/libedit (?), 0x01 und 0x02 anzeigen.

Also, wenn Sie diese vor und nach den nicht druckbaren Sequenzen in Ihrem PROMPT1 hinzufügen, sollte es funktionieren. Das Ergebnis ist in Ihrem Fall wäre:

\set PROMPT1 '%001%[%033[1;33;40m%]%002%[email protected]%/%R%001%[%033[0m%]%002%# ' 

Update: Es scheint, dies sollte allerdings müssen sie einige, wie verloren, irgendwo in psql behandelt werden. Vielleicht ist USE_READLINE nicht definiert? Siehe: Line 286 in src/bin/psql/prompt.c

+0

Ich habe meine Postgres-Installation auf Version 9.3.5 aktualisiert, und das Problem scheint behoben worden zu sein; Tatsächlich scheint das Umhüllen von Farbcodes in '% 001' und'% 002% 'nun das Problem zu präzisieren, über das @UlfR geschrieben hat. Ihre Lösung * hat * jedoch auf einer älteren Version funktioniert. Vielleicht ist es nur eine Eigenheit meines Setups. – sevko