2010-11-19 9 views
4

Ich habe Probleme mit meinem Bash Prompt und Zeilenumbruch Verhalten. Wenn ich eine statische Eingabeaufforderung verwendeBash Zeilenumbruch und Geschichte Scrollen

Ich kann lange Zeilen auf der Eingabeaufforderung eingeben und sie gut wickeln. Scroll nach oben/unten in der Geschichte funktioniert auch gut. Bei Verwendung von dynamischen Prompt wie:

export PS1="\[email protected]\h(\W)$ "; ### Long lines don't wrap at all 

lange Linien verschlüsselt wurden. Eine Korrektur gefunden, durch die lange Zeilen korrekt umgebrochen wurden. (http://hintsforums.macworld.com/showthread.php?t=17068).

export PS1="\[\[email protected]\h(\W)$ \]"; ### Long lines wrap while typing, but not while scrolling up/down through previous commands 

Wenn jedoch die Aufforderung Geschichte geht nach oben/unten, die Linien wickeln nicht. Ich weiß nicht, wie ich das Verhalten in Worten erklären soll, aber ich werde versuchen - wenn ich nach oben gehe (Pfeil nach oben), wird die Hälfte des letzten Befehls aufgefressen und der Cursor landet irgendwo dazwischen, wo die Linie eingewickelt wäre.

Was ist die Lösung dafür?

Ich erinnere mich, dass auf vielen Linux-Distributionen dynamische Prompts funktionieren sofort aus der Box (das ist an meinem Arbeitsplatz).

Grüßen,

JP

+0

Übrigens - im dritten Fall PS1 = "\\ [\ u @ \ h (\ W) $ \\]", ich weiß nicht einmal den richtigen Begriff für das Verhalten - ob es beim Scrollen und Rollen wickelt Ich möchte nicht, dass es sich umwickelt oder nicht wickelt und ich will es wickeln. Ich bin jedoch verwirrt mit dem verrückten Display! –

+0

können Sie bitte "echo $ TERM" bitte? – dogbane

+0

echo $ TERM Ausgänge "xterm" –

Antwort

1

Dieses Problem wahrscheinlich selbst nicht über die Eingabeaufforderung, sondern eher über den Terminal-Emulator richtig verhält.

Ich benutze diese Bash-Eingabeaufforderung:

export PS1="\[\e[1;34m\]\[email protected]\h:\W \t (\j) <\!>\n\$\[\e[0;00m\]" 

, die sich über zwei Linien tatsächlich zeigt, suchen genau wie folgt aus:

[email protected]:sh 01:43:27 (1) <1017> 
$ env | grep PS 
PS1=\[\e[1;34m\]\[email protected]\h:\W \t (\j) <\!>\n\$\[\e[0;00m\] 

und es funktioniert perfekt mit der Geschichte eine Rolle in Ordnung, entweder STRG + N mit , STRG-P oder die Pfeiltasten.

Ich verwende Xterm-Farbe in Terminal.app (auf einem MacBookPro).

+0

Bugger, ich habe seit Jahren mit diesem Problem gelebt, nur weil ich meine Aufforderung nicht korrekt beendet habe, indem ich die Farben auf diese Weise zurückgesetzt habe. Vielen Dank! –

Verwandte Themen