.bashprofile に次の行を含むカスタム Mac ターミナル プロンプトを作成しました。
export PS1='\e[0;36m\][\u] \w:\e[0;31m\]$(__git_ps1 " (%s)") \e[00m\n\e[1;33m\]\342\230\200 >\e[0m\] '
ここで起こっていることはかなりありますが、私は違反者を '\e'... の部分に分離しました。これは、表示されるテキストの色を制御します。
生成されたテキスト プロンプト自体は完全に正確で問題なく機能しますが、矢印キーを使用して過去のコマンドを循環させると奇妙なエラーが発生します。循環して任意の文字長 (18 など) のコマンドに到達すると、循環を継続するときに最初の数文字が削除されなくなり、さまざまな入力が不正確に表示されるようになります (正しい関数ではありますが)。これは説明が少し難しいので、プロンプト ('>') とアスタリスクで「上」または「下」で示されるキーストロークの例を次に示します。
> vim sample.txt ** up **
> vim test.txt ** up ** (no problems so far)
> cd /Documents/Test_Folder/sample/foo.txt **down**
> cd /Documvim text.txt (the issue is visible)
つまり、前のコマンドの一部が完全に削除されないため、混乱を招く文字列が表示されますが、そのコマンドを実行すると正しく機能します (テキストが表示されるわけではありません)。最後に発行された「down」が「up」に置き換えられても、問題は引き続き発生することに注意してください。
この問題が回避されるように Mac 端末の色を変更する "\e" の代替手段がある場合、この問題が発生する理由を誰かが説明できますか?