Shell Prompt Zeilenumbruch Problem
Habe ich etwas getan, was gegen meine Bash-Shell-Prompt unter OS X (10.5.7) Terminal.
Dies ist die PS1, das hatte ich konfiguriert:
PS1='\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
Soweit ich sagen kann, ich habe die color Befehle Flucht richtig. Allerdings, wenn ich nach oben und unten Blättern in meinem Befehl Geschichte, die ich oft bekomme den Zeilenumbruch Probleme, wenn die historischen Befehle wrap auf mehrere Zeilen.
Vereinfachte ich die Anweisungen, um die folgenden:
PS1='\[\e[1m\]\h:\w\$ \[\e[0m\]'
PS2='> '
Und ich sehe immer noch so etwas wie:
localhost:~/Library/Application Support/Firefox/Profiles/knpmxpup.Defau lt/extensions/{1A2D0EC4-75F5-4c91-89C4-3656F6E44B68}$ expocd \{1A2D0EC4-7 5F5-4c91-89C4-3656F6E export PS1="\[ \e[1;32m\]\h\[\e[0m\]: cd Library/Appl munikation\ Support/
Ich habe auch versucht \033
statt \e
. Ich nur eingebaut, PS2 dort für die Informationen, ich habe Sie nicht geändert, dass von der Installations-Standard. Wenn ich komplett die Farbe entfernen, codes, dann funktioniert alles in Ordnung, irgendwelche Ideen?
InformationsquelleAutor der Frage Rob | 2009-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zeilenumbruch Probleme in Bash sind nichts neues. Konsultieren Sie die Mailingliste, vielleicht ist da noch ein weiterer bug in Bezug auf diese.
Kann man nicht viel mehr als tagging nicht druckbare Zeichen, der rest muss getan werden, um die Aufforderung code.
InformationsquelleAutor der Antwort TheBonsai
Ich bin jetzt mit diesem PS1 mit guter Wirkung:
Scrollen durch mein command history erscheint Griff Zeilenumbrüche sind jetzt. Aber in der Zwischenzeit, seit diese Frage gestellt wurde habe ich ebenfalls aktualisiert, mein OS X 10.6.3
InformationsquelleAutor der Antwort Rob
In diesem stackoverflow-thread relevant zu sein scheint. Als jemand darauf hingewiesen, in diesem thread, die Bash-FAQ an mywiki.wooledge.org beschreibt, wie Sie richtig zitieren, color codes in Bash-prompts ( FAQ 53 ) und der richtige Aufruf des terminal-Farben (FAQ 37).
InformationsquelleAutor der Antwort willdye
Es scheint, dass Sie haben richtig escaped und geschlossenen Sequenzen.
Einen workaround benutze ich sowieso es es auf ein '\n' am Ende. Ich finde es übersichtlicher und verringern problem mit der Verpackung Probleme. Das genaue Ende meiner PS1 ist :
Eines exzellenten HOWTOs Sie wahrscheinlich wissen :
Bash prompt howto
InformationsquelleAutor der Antwort neuro
Hier ist meine: es ist die beste, die ich gefunden habe, aber der Ort, wo ich ihn ursprünglich gefunden wurde, fehlt eine escape-Zeichen, was die Zeile umbrechen Problem. Ich gebastelt mit ihm, und schließlich habe es funktioniert. Es zeigt Ihren Benutzernamen, Pfad, Zweig und info mit gutem Kontrast, color-wise.
Fügen Sie außerdem
Zeigen eine Markierung, wenn ein Zweig ist "dirty" (änderungen verpflichtet sein, existieren)
Ist auch nützlich, zu ignorieren Duplikate beim scrollen durch die bash-history.
Hilft auch.
Schließlich
Kann hilfreich sein, auf OSX, wenn die Probleme dann weiterhin bestehen.
InformationsquelleAutor der Antwort rcd
Ich bemerkt, dass es einige Probleme mit der Eingabeaufforderung cursor Positionierung, auch wenn es kein spezielles Zeichen in der
PS1
oderPROMPT
Umgebungsvariable.Wenn wir eine Datei ausgegeben, die nicht über eine end-of-line-char am Ende. Es wird verwirren die Eingabeaufforderung.
Können Sie nachvollziehen, indem wir tun:
curl https://gist.githubusercontent.com/martinos/d4aa0a7d4d752b0d0d9f/raw/3198c39f84a080c44227a084a19fb3a0bb661ee5/wrapping_issue.txt
und drücken Sie die up-Taste mehrere Male und Sie werden sehen, dass die Eingabeaufforderung verwirrt.
Sehen Sie ein Beispiel in Aktion:
https://asciinema.org/a/9mtjhi9dib6md4ocsbw210cca
Wenn dies geschieht, drücken Sie einfach
<CTRL-C>
und die Eingabeaufforderung wird wieder normal.Beachten Sie, dass ZShell tritt dieses Problem nicht auf.
InformationsquelleAutor der Antwort Martinos
Für die Zukunft, das ist, was ich verwenden:
export PS1="\[\033[0;31m\][\u@Project:\w]$\[\033[0m\] "
Diese anzeigen würde mein shell-prompt als:
[ec2-user@Project:~]$
Hilft mir die Unterscheidung zwischen live-und dev-Websites.
InformationsquelleAutor der Antwort Anil
'shopt -s checkwinsize' funktioniert auch für Cygwin wrap Probleme auch
InformationsquelleAutor der Antwort user3375990
Wenn Sie die Titelleiste trick
"\e]2;titlebar\a"
stellen Sie sicher, um zu entkommen, zu:"\[\e]2;titlebar\a\]"
InformationsquelleAutor der Antwort Charlie