私はzshプロンプトのマイナーな(しかし迷惑な)問題を修正しようとしています。私が見ている問題は、GUI OS環境(たとえば、OS X 10.7.2のTerminal.appまたはiTerm 2)でターミナルを使用し、ターミナルウィンドウのサイズを変更すると、ターミナルが余分なプロンプトで再描画されることです。 。
次を含むクリーンな.zshrcで問題を再現しました。
export PROMPT=">
"
明確にするために、これは2行のファイルです。文字列にはリテラルの改行がありますが、これはいくつかの(明らかに古い)場所で読んだものです。これは、端末ウィンドウのサイズを変更するまで機能しますが、その時点でプロンプト文字列が重複してしまいます。たとえば、新しいウィンドウを開くと、次のように表示*
されます(カーソルのプレースホルダーとして使用されています):
Last login: Wed Jan 25 19:05:06 on ttys000
>
*
次に、ウィンドウのサイズを変更して短くすると、次のようになります。
Last login: Wed Jan 25 19:05:06 on ttys000
>
>
>
>
*
追加のプロンプト印刷の数は、ウィンドウサイズを変更する量にほぼ比例しているようです(通常は垂直方向)。プロンプト文字列から改行を削除すると、問題はなくなります。
のように$(print ">\n")
、または改行をラップするなど、さまざまなことを試しました%{%}
。これは、プロンプト文字列が実際にどれくらいの長さであるかなどについて、改行が描画しているものを混乱させるという事実に関係していると思います。この問題は解決可能ですか、それとも一緒に生きなければなりませんか?
print
はZSH固有のコマンドであり、Googlingの「linux print」ではあまり良い結果が得られないようです。