
ターミナル コマンドが長いことがよくあるのですが、コマンド履歴を使用しようとすると (上矢印を押す)、テキストの書式設定が文字化けしてしまい、カーソルが間違った場所に表示されます。この時点でコマンドの編集は不可能になり、カーソルの実際の位置が画面上に正しく表示されません。
ターミナル ウィンドウのサイズを変更してコマンド全体を 1 行に収めると書式が修正されますが、これを実現するには画面領域が足りない場合があります。何かアイデアはありますか?
答え1
シェル プロンプトをカスタマイズしましたか (たとえば、色付けなど)? これが発生する一般的な理由は、プロンプトに印刷されない文字 (たとえば、色の変更シーケンス) があり、シェルがプロンプトの幅について混乱し、コマンド ラインをどのように折り返すかがわからなくなることです。
シェルとして bash を使用している場合、正しい解決策は、非印刷シーケンスを で囲んで、\[...\]
シェルに非印刷であることを知らせることです。たとえば、プロンプトを青にしたい場合 (\e[0;34m
青に変更して\e[m
通常に戻す)、次のようにします。
PS1='\[\e[0;34m\]your prompt text here\[\e[m\]'
答え2
これはローカル マシンで発生していますか? つまり、別のコンピューターに SSH 接続していないということですか? ローカルの場合は、Terminal.app を終了し、.plist ファイルを削除して、Terminal.app を再度開いてみてください。