2011-08-05 11 views
1

で作業していない。そして、ターミナルは、色プロンプト

 
echo foo 
PS1='\e[0;30mtest \e[0m' 

test PS1='\e[0;30mtest \e[0m'表示され(予想通り)矢印アップを押します。
しかし、私は色が含まれていないものにPS1を設定した場合、私は
矢印、私はecho fooを持つべきアップを押すと、それはtest PS1='\e[0;3echo foo

になり、それは動作します:

echo foo 
PS1='\e[0;30mtest \e[0m' 
PS1='test ' 
  • をトリプルプレスアップに、結果を矢印echo foo

注:echo fooはまだ実行されたコマンドです。を入力してください。

iTerm2とApple Terminalの両方で試してみました。

なぜそれをやっているのですが、どうすれば修正できますか?

答えて

4

このお試しください:余分\[\]ブラケットを使用することにより

PS1="\[\e[0;30m\]test \[\e[0m\]" 

を、あなたは上矢印キーを押したときに、それは誤解されることができる、あなたはいくつかの非印字文字を持っているbashを語っています。

1
PS1='\[\e[0;30m\]test \[\e[0m\]' 
# ^^  ^^  ^^  ^^ 

\[\]非印字文字についてはbashを伝えます。そうでなければ、あなたのプロンプトの実際の長さはどれくらいかというと、 ということはありません。詳細は、PROMPTINGセクションの のbashのマンページを参照してください。

関連する問題