bash
プロンプトを次のように色付けしようとすると:
export PS1="\e[0;31m[\u@\h \W]\$ \e[m "
キャリッジリターンを解除します(行がいっぱいのときに新しい行に移動するのではなく、同じ行から開始して入力テキストを消去します)。
カラーシーケンスを削除すると、正常に動作します。
私はUbuntu 11.10とターミナルを使用しています(guakeにも同じバグがあります)。
「readline」がプロンプトの表示長を正しく計算するためには、\[
と\]
の間のすべてのエスケープシーケンスをラップする必要があります。それらがないと、「readline」はプロンプトが実際よりも長いと考え、テキストがいつマージンに達したかを知りません。
PS1 = "\ [\ e [; 31分\][\ u @\h\W]\$ \ [\ e [m\]「
[および]ヒントは、OS X 10.8.2のbashでも機能しました。
私が使う:
PS1 = "[\ e [0; 37m\W\$(git branch 2>/dev/null | grep -e '*' | sed 's/^ ..(。*)/ {\ 1} /')\$\e [m] "
現在使用中のgitブランチを示しています。