Ich versuche, ein kleines (aber ärgerliches) Problem mit meiner zsh-Eingabeaufforderung zu beheben. Das Problem ist, dass wenn ich ein Terminal in einer GUI-Umgebung verwende (z. B. Terminal.app oder iTerm 2 unter OS X 10.7.2) und die Größe des Terminalfensters verändere, das Terminal mit zusätzlichen Eingabeaufforderungen neu gezeichnet wird .
Ich habe das Problem auf einer sauberen .zshrc reproduziert, die Folgendes enthält:
export PROMPT=">
"
Das ist eine zweizeilige Datei. Es gibt eine wörtliche Newline in der Zeichenfolge, die ich an mehreren ( zugegebenermaßen alten ) Stellen gelesen habe . Dies funktioniert so lange, bis ich die Größe des Terminalfensters verändere und dann doppelte Eingabeaufforderungszeichenfolgen erhalte. Wenn ich zum Beispiel ein neues Fenster öffne, sehe ich ( *
als Platzhalter für meinen Cursor):
Last login: Wed Jan 25 19:05:06 on ttys000
>
*
Wenn ich dann die Größe des Fensters verändere und es kürzer mache, erhalte ich:
Last login: Wed Jan 25 19:05:06 on ttys000
>
>
>
>
*
Die Anzahl der Ausdrucke für zusätzliche Eingabeaufforderungen scheint in etwa proportional zu sein, wie stark ich die Fenstergröße ändere - normalerweise vertikal. Wenn ich den Zeilenvorschub aus der Eingabeaufforderungszeichenfolge entferne, verschwindet das Problem.
Ich habe verschiedene Dinge ausprobiert, zum Beispiel $(print ">\n")
, oder ich habe versucht, den Zeilenvorschub einzuwickeln %{%}
. Ich nehme an, das hat damit zu tun, dass Newline verwirrt, was auch immer zeichnet, wie lang die Eingabeaufforderungszeichenfolge tatsächlich ist oder so. Ist dieses Problem behebbar oder muss ich nur damit leben?
print
ein ZSH-spezifischer Befehl ist, und Googeln unter "Linux Print" liefert keine sehr guten Ergebnisse.print
ist ein Teil von zsh. Die Hilfe dazu finden Sie inman zshbuiltins
. Bash hat seine eigene Entsprechung, aber ich bin nicht sicher, ob sie kompatibel sind.Wie wäre es mit so etwas:
quelle