[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bash Prompt spinnt - ein Bug?



On Fri, 12 Jul 2002 18:40:43 +0200, Sacher Khoudari wrote:

> Ich habe mir den Bash-Promt etwas eingefärbt, aber nun spinnt er
> wenn ich ne zu lange kommandozeile habe und eigentlich ein
> Zeilenumbruch kommen soll. Der Cursor springt zwar an die erste
> Spalte, bleibt aber in der selben Zeile (überschreibt also den Prompt
> und alles was ich danach bereits geschrieben habe). Wenn ich die Zeile
> löschen will geht der Cursor schon ne Zeile zurück, ich überschreibe
> also vorherige Zeilen - ausserdem versetzt sich die ganze Zeile
> horizontal, sie wird jedoch nicht aktualisiert.
> Vieleicht klingt das alles ja etwas 'abenteuerlich', ist aber auch etwas
> blöd zu beschreiben. Das einzige was ich getan habe ist folgendes:
> 
> (bashrc:)
> PS1='\033[33m\u@\h:\w\$ \033[0m'

Wenn der Prompt solche ESC-Sequenzen enthält, die nichtdruckbare 
Zeichen produzieren, ist unklar, wieviel Zeichen lang der Prompt 
insgesamt wird. Wenn die Promptlänge falsch bestimmt wurde geht am
Zeilenende der Umbruch schief. Deshalb bietet die bash die Möglichkeit, 
nichtdruckbaren Zeichen im Prompt als solche zu kennzeichnen.

In "man bash", Abschnitt "PROMPTING" steht:

              \[     begin a sequence of non-printing characters,
                     which could be used to embed a terminal con­
                     trol sequence into the prompt
              \]     end a sequence of non-printing characters

Damit solltest du die Farbcodes umschließen. Ich nutze z.B.
"\[\e[07m\]\u@\h:\w>\[\e[0m\] "  bzw.
"\[\033[07m\]\u@\h:\w>\[\033[0m\] "
in bash-1.x   

Diese inverse Darstellung funktioniert übrigens auf viel mehr Terminals 
als eine bunte Darstellung.

  Reinhard


-- 
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-request@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)



Reply to: