2010-11-19 9 views
4

私のbashのプロンプトと行折り返しの動作に問題があります。静的プロンプトを使用する場合バッシュ行の折り返しと履歴のスクロール

export PS1="test$ "; ### Works perfectly 

プロンプトに長い行を入力することができます。履歴の上/下をスクロールしてもうまく動作します。

export PS1="\[email protected]\h(\W)$ "; ### Long lines don't wrap at all 

長い行は、スクランブルました:ダイナミックプロンプトなどを使用してオン 。長い線が正しく折り返されるような修正が見つかりました。 (http://hintsforums.macworld.com/showthread.php?t=17068)。

export PS1="\[\[email protected]\h(\W)$ \]"; ### Long lines wrap while typing, but not while scrolling up/down through previous commands 

ただし、プロンプト履歴を上/下に移動すると、行が折り返されません。私は言葉で振る舞いを説明する方法を知らないが、私が(上向きの矢印キー)上に行くと、最後のコマンドの半分が食べられ、カーソルが折り返されたところのどこかで終わる。

これはどのような解決方法ですか?

多くのLinuxディストリビューションでは、ダイナミックプロンプトがすぐに使用できます(これは私の職場にあります)。

に関して、

JP

+0

ところで、PS1 = "\\ [\ uh \ \ h(\ W)$ \\]"では、スクロール中にラッピングしているかどうか、私はそれをラップするか、ラップしないことを望みません。ラップしたいのです。私は狂ったディスプレイと混乱している! –

+0

あなたは 'echo $ TERM'できますか? – dogbane

+0

echo $ TERMは "xterm"を出力します –

答えて

1

は、この問題は、プロンプト自体については、おそらくではありませんが、適切に動作し、端末エミュレータについてもっと可能性が高いです。

export PS1="\[\e[1;34m\]\[email protected]\h:\W \t (\j) <\!>\n\$\[\e[0;00m\]" 

実際にこのように正確に探して、2行にわたって表示されます:

私はこのbashプロンプトを使用

[email protected]:sh 01:43:27 (1) <1017> 
$ env | grep PS 
PS1=\[\e[1;34m\]\[email protected]\h:\W \t (\j) <\!>\n\$\[\e[0;00m\] 

をし、それがCTRL-Nのいずれかを使用して、歴史のスクロールと完全に正常に動作します、CTRL-P、または矢印キーを押します。

私はTerminal.app(MacBookPro上)でxterm-colorを使用しています。

+0

バガー、私は何年もこの問題を抱えてきました。なぜなら、このように色をリセットしてプロンプトを正しく終了しなかったからです。ありがとう! –