一部の(多くの場合長い)コマンドがbashおよびzshで文字化けするのはなぜですか?


10

多くの場合、bashまたはzshで長いコマンドを入力すると(これらは私がこれを確認した2つのシェルだけです)、カーソルが入力している文字列の途中のどこかにワープしますが、これがなぜであるか誰にも説明できますが、これについて何かできることがあるか?

これは、シェルの履歴を(矢印キーを使用して)参照するとよく発生します。長いエントリに遭遇すると、長くて新しいエントリが前のエントリと混ざり合い、テキストが文字化けします。

短い文字列の例があります。

履歴に含まれるもの:

mkdir sune1
mkdir sune2

私はに移動した場合mkdir sune1、その後にmkdir sune2、私は私のコマンドラインがあることを期待するmkdir sune2(これは私が今までナビゲートしているものであるため) -代わりに私が得ますmkdir1sune2

私は何年もの間これに頻繁に気づきましたが、あまり気にしないようにしてください。しかし、変化の時だと思います!それで、何かアイデアはありますか?

回答:


8

プロンプト文字列は、おそらく印刷されない文字を誤ってエスケープしています。あなたのプロンプトでの色の変化のようなものを持っている場合は、配置する必要があります\[し、\]bashが、彼らは、画面上のスペースを取らないことを伝えることができるので、端末のエスケープシーケンスを中心に-それ以外の場合は、実際のコマンドが画面に表示されている場所を誤って計算し、それを更新間違った場所に。TLDPのこのセクションを参照してください。zshのでは、置く%{%}周りのエスケープシーケンス。


私は確かに私のプロンプトに色があります、私はそれらをエスケープするか、それらを削除して、それが役立つかどうかを確認します。ありがとう!
ジョナタン

zshのカラーモジュールの使用を検討してください。これは、エラーが発生することは避けてくださいstackoverflow.com/questions/6159856/...
サンフランシスコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.