私はWindows 7で最新バージョンのCygwin 64ビットを使用しています。ターミナルウィンドウでは、ローカルコンピュータで作業するか、SSHを介して別のコンピュータ(Linux)に接続します。 bashコマンドの履歴をスクロールして長いコマンドを渡すと(特にプロンプトのあるコマンドが行の終わりを過ぎて次の行に移動する場合)、スクロールし続けると他のコマンドが印刷されます。ただし、新しいコマンドが短い場合は、前のコマンドの文字の1つまたは一部を保持してください。たとえば、次のようになります。
[me@mine /some/where]$ the quick brown fox jumped over the lazy dog. the
quick brown fox jumped over the lazy dog.
[me@mine /some/where]$ another command altogether over the lazy do
[me@mine /some/where]$ yet another command jumped over the lazy do
今、すべての文字が保存されるわけではありません。また、これが常に発生するわけではありません。正確に何がこれを引き起こすのかよくわかりません。
ただし、cygwinを介さずにputtyなどを使用してリモートホストにsshを接続すると、この動作は発生しないため、Cygwinまたはそのbashに問題があるようです。
- 一体何が起こったのでしょうか?
- なぜですか?
- 問題を解決/防止/解決できますか(
clear
実行に加えて)?
答え1
Bashの行の長さに関する一般的な問題は次のとおりです。早く(PS1
)、通常は色を使用するように構成されています。エスケープシーケンスが\[
andに含まれていない場合、\]
bashはカーソル位置について誤った仮定をします。通常、次のような状況で報告されます。編集するコマンドだがスクロール歴史を見てみるとあまり変わりません。
ローカルカスタマイズがない場合PS1
、次に見ているところは、端末の説明(値TERM
)。 Cygwinが最近使用したmintty
ターミナルウィンドウで。その子孫です。putty
...TERM=xterm
しかし、行動mintty
と行動には違いがあります。xterm
(putty
違いと同様)。走るtack
たとえば、bw
(backward-wrap) が正しくないことを示します。 bashはこれを直接使用しないようです(一部のスクリプトでは使用しますが)。将来のラップ()もam
(で行うことができます)とは異なります。xterm
vttest
)、bashはxtermの動作にある程度依存する可能性があります。
Cygwinを使用してCygwinxterm
と比較すると、mintty
より良い比較が得られます。
答え2
考えられる質問:
TTYパイプの一部に端子幅に関する誤った知識がある
Unicodeに関する質問は少し混乱しています。
代替画面にあり、文字が正しく上書きされませんでした。 (このアイデアの思い出は偽物です。詳細が間違っている可能性があります。)