特定のプログラム(構成)を実行すると、端末が複雑になります。私の入力内容は表示されません。 「stty sane」を使って修正できましたが、端末でマウスをクリックするたびに(私はPuTTYを使用しています)、奇妙な文字が表示されることがわかりました。例えば
# O:#O: O:#O: 7-#7- BE#BE ...
5文字のシーケンスで表示されますが、同じ位置をクリックすると同じシーケンスが表示されます。
「リセット」を使用して問題を解決できることを知っていますが、これが何であるか、リセットせずに問題を解決する方法があるかどうかを知りたいです。 「構成」内で端末を台無しにする根本的な原因を見つける方法があるかもしれません。
答え1
これはxtermスタイルです「マウス」イベント。原則として、適切なprintf
ORを使用してそれをオフにすることができますが、echo
端末記述ですでにOR文字列の一部である場合reset
(「infocmp」出力を参照)。rs1
rs2
reset
たとえば、次のようにします。
rs1=\Ec,
rs2=\E[!p\E[?3;4l\E[4l\E>,
そして後者を好みます(電子はハードリセットです)。\E
エスケープ文字です。ところで最初のブロックはrs2
、\E\[!p
通常、マウスや他のほとんどの便利な項目をリセットするソフトリセットです。 printfは
printf '\033[!p'
入力する以上のものです。
reset
echo
(あなたが知っている非標準を使用しても\E
)。しかし、矢印キーの説明:ソフトリセットはカーソルキーを通常モードに戻しますが、viはそのキーがアプリケーションモードにあると思います。
マウスのみを無効にするには、次の出力を確認してくださいinfocmp -x
。
XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
これはncursesにマウスを有効/無効にする方法を伝えます。端末の説明が完全に正確ではないそれしかし、1000
それは通常のマウスモードあなたの例はこれを示しています。それでは...あなたはできます
printf '\033[?1000l'
(小文字のLは無効になります)その後、マウスを殺します。
「一部のプログラム」が自分で整理できないため、この現象が現れるのです。