web-dev-qa-db-ja.com

Mac OS Xでのbashの行折り返しとバックスペース表示のバグを修正しましたか?

ターミナル(Mac OS X 10.5.8)を開いて長いコマンドラインを入力すると、次のようになります。 alt text

...テキストは折り返されても次の行に行きません: alt textalt text

また、コマンドを入力してからバックスペース(または上矢印または^ U)を実行すると、 alt text

...行全体が消去されず、特定のポイントを超えてバックスペースすることはできません。 alt textalt text

これは既知のbashバグですか(Mac OS X)?修正はありますか?

Update:Juliano は正しかった、問題は私のPS1変数でコンソールコードシーケンスを誤って区切ることによって引き起こされました。変化:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '

...私の.bashrcから:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '

...問題を解決しました。

14
Daryl Spitzer

動作は、プロンプトにコンソールコードがあり(色を変更するなど)、適切にマークされていないため、bashはそれらが非表示であることを認識します。

何よりもまず、これを行います。

PS1='\w\$ '

そして、もう一度やり直してください。問題が解決した場合、私の疑いは正しいです。

各コンソールコードシーケンスは、PS1変数の\[および\]で区切る必要があります。彼らはbashにそこにあるものは何でもカーソル位置を動かさないことを伝えます。詳細については、bashのマニュアルを参照してください。

19
Juliano

サニタイズされたプロンプトの生成を支援するために、 http://www.kirsle.net/wizards/ps1.html を試してみてください。プロンプトの角括弧に注意してください。角括弧か何かをエスケープしようとします。

3
Dan Green