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


14

ターミナル(Mac OS X 10.5.8)を開いて、長いコマンドラインを入力すると: 代替テキスト

...テキストが次の行に移動しても、次の行に移動しません。 代替テキスト 代替テキスト

また、コマンドを入力してからバックスペース(または上矢印または^ U)を入力する場合もあります。 代替テキスト

...行全体は消去されず、特定のポイントを超えてバックスペースすることはできません: 代替テキスト 代替テキスト

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

更新: ジュリアーノは正しかった、問題はPS1変数のコンソールコードシーケンスを誤って区切ることによって引き起こされました。変化:

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

...私の中.bashrcに:

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

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


1
+1は、これまで見た中で最も美しいスクリーンのスクリーンショットです。
追って通知があるまで一時停止します。

1
更新で示した2つのコード行は同じです。
マグネ

良いキャッチ、@ Magne。これを見てから4年が経っているので、具体的には覚えていませんが、「以前」が欠落していたと思います\]
ダリルスピッツァー

彼らは同一ではない:第一一つは持っている\][ `」の代わりに
オハッドコーエン

回答:


19

振る舞いは、プロンプトにコンソールコードを(色を変更するなどのために)持つことと一貫しており、bashがそれらが見えないことを知るように適切にマークしません。

何よりも前に、これを行います:

PS1='\w\$ '

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

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


それが問題でした。ありがとうございました!質問を詳細に更新します。
ダリルスピッツァー

そして、それが問題を解決しない場合はどうなりますか?
レベスク

3

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


+1 @Julianoの答えは技術的には正しいですが、ここのこのリンクは正しいtputコマンドを設定するものです-これは、改行、「改行および他のANSIコードを使用しても修正できなかったその他の「履歴+バックスペース」修正を修正しました。
エリックダンカン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.