GNU画面をクリックすると奇妙な文字が表示されます

GNU画面をクリックすると奇妙な文字が表示されます

GNU画面に小さな問題があります。私のRaspberryPiで実行されているGNUスクリーンセッション。今度はサインアップするときにターミナルをクリックすると(Fedoraではターミネーターを使用します)、奇妙な文字が書かれていることがわかります。この文字は私のマウスの座標によって異なります。 GNU画面に送信されたクリックイベントを誤ってデコードしたようです。これらの文字には、次の文字が含まれます。

kM#kM -  Z3#Z3  -  q-#q-

など…

最初はこれが私の問題だと思い、ttyRaspberryPiで新しいGNU Screenセッションを開きました。まったく問題ありません。両方のセッションを
確認しstty -a、違いを見つけました。その後、 stty -g > ~/stty-good-settings良いセッションで1つを実行し、悪いセッションからロードしましたがstty `cat ~/stty-good-settings`(後で値を比較して設定が正常にロードされました)、進行中の他のスクリーンセッションではない限り、スクリーンセッションではまだ問題があります!

何が起こっているのかよく分からない。これが私のTERM価値観(両方とも同じ)のためなら、私のtty設定、私のターミナルのためなら...

答え1

走る~へGNU Screenはxterm(または同様)で実行され、アプリケーションのマウスモードが有効になっていることを確認します。 (またはGNU画面に接続する前にその端末で実行されているもの、おそらくssh以前にも正しくリセットされていない可能性があります。)$ TERMが「screen」ではなく「xterm」または「screen」の場合、これは通常発生します。 xterm". 後者はインストールされたncurses-termDebian システム (および派生製品) で発生します。

さもなければreset(すでに述べたように)printf \\x033c一時的に役立つかもしれません。あるいは、もちろん正しいエスケープシーケンスを使用して、ターミナルエミュレータでマウスモードを無効にすることもできます。

答え2

reset席がありますが、画面が消去されます。走っているならxtermまたは何も互換性、これを使用する最も短く、侵襲的でない方法は次のとおりです。

printf '\033[?9l'

これは明示的に明示されていません。マウス追跡部分XTerm制御シーケンス、しかしxterm開いているモードをすべて閉じて、マウスモードをリセット(無効)できます。これは名前付き定数として文書化されています。

 #define SET_X10_MOUSE               9
 #define SET_VT200_MOUSE             1000
 #define SET_VT200_HIGHLIGHT_MOUSE   1001
 #define SET_BTN_EVENT_MOUSE         1002
 #define SET_ANY_EVENT_MOUSE         1003

そして9最短です。

多くのアプリケーションがマウスモードを有効にします。閉じずに終了すると、奇妙な文字が表示されます。 ncurses アプリケーションがマウスモードをオフにします。endwin、誠意を持って動作するすべての呪いアプリケーションで呼び出されます。他のアプリケーションでは、(n)cursesを使用しないか、呼び出すことを忘れることがありますendwin

ncurses アプリケーションは関数をテストして xterm-mouse モードが使用可能かどうかを確認しますkmous(これはscreen端末の説明)。これは将来の機能をテストする標準的な方法でした。1999年したがって、アプリケーションが誤ってマウスモードをオンにする可能性が低くなります。代わりに、これはアプリケーションがそのタスクを実行するのを忘れたことを示します。

screen.xtermしかし、Debian にはアイテムはありません。ncurses-termパッケージ(削除するよりも維持する方が便利です)。以下は、パッケージ内のすべての画面関連アイテムのリストです。screenさまざまな端末の動作の違いを修正するために最もよく使用されます。

/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen-16color-bce
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen3
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen-bce.Eterm
/usr/share/terminfo/s/screen-bce.gnome
/usr/share/terminfo/s/screen.xterm-xfree86
/usr/share/terminfo/s/screen-bce.konsole
/usr/share/terminfo/s/screen-bce.mlterm
/usr/share/terminfo/s/screen-256color-s
/usr/share/terminfo/s/screen-bce.mrxvt
/usr/share/terminfo/s/screen-bce.rxvt
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen-bce.xterm-new
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen-16color-bce-s
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen+fkeys
/usr/share/terminfo/s/screen-256color-bce-s
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen-16color-s
/usr/share/terminfo/s/screen-bce.linux
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen2
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.xterm-new

関連情報