PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Terminalemuationsprogrammen



d@tenmaulwurf
19.04.06, 14:00
Moin!

Ich wollte mir mein Terminal ein bisschen anpassen und habe mir folgenden String in meine .bash_profile geschrieben:

PS1="\[\e[1;34;40m[\e[0;36m\u@\h:\w\e[1;34;40m]\e[0;37;40m $\e[0;37;0m "

Funktioniert eigentlich auch und sieht gut aus.

Das Problem hierbei ist nur, wenn ich jetzt 'x'e schreibe, schreibt er diese - wie er's soll - bis ans Ende der Zeile und macht in der nächsten Zeile weiter.

Dies aber nur bis zu einem bestimmten Punkt. Ab da ann fängt er dann von neuem in der selben Zeile an und überschreibt quasi die ersten 'x'e der neuen Zeile.

Ich versuche das mal aufzumalen:

[daten@alice:~] $ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
^^^^^^^^^^^
| | | | | | | | | | |
Dieser Bereich wird "doppelt" beschrieben in meinem Terminalfenster.

Das ist extrem nervig, wenn man verifizieren will was man eingegeben hat und dies nicht kann, weil ein Teil vom anderen überdeckt wird.

Vielen Dank im voraus,

d@tenmaulwurf

smoon
19.04.06, 19:21
Probiers mal mit
PS1="\[\e[1;34;40m[\e[0;36m\]\u@\h:\w\[\e[1;34;40m]\e[0;37;40m\] $\[\e[0;37;0m\] "
Das Problem ist, dass du der Bash sagen musst, welche Zeichen sichtbar sind und welche nicht. Nicht sichtbare sollte man in \[ \] einschließen. Du hast bei dir allerdings am Anfang ein \[ stehen und schließt es nicht wieder, dementsprechend geht die Shell davon aus, dass die ganze Variable nicht angezeigt wird und berechnet eine falsche Zeilenlänge. Siehe dazu auch Punkt E3 in der Bash FAQ (http://tiswww.tis.case.edu/~chet/bash/FAQ).

d@tenmaulwurf
20.04.06, 00:30
Ich danke dir, es funktioniert - perfekt !!