GNU画面に小さな問題があります。私のRaspberryPiで実行されているGNUスクリーンセッション。今度はサインアップするときにターミナルをクリックすると(Fedoraではターミネーターを使用します)、奇妙な文字が書かれていることがわかります。この文字は私のマウスの座標によって異なります。 GNU画面に送信されたクリックイベントを誤ってデコードしたようです。これらの文字には、次の文字が含まれます。
kM#kM - Z3#Z3 - q-#q-
など…
最初はこれが私の問題だと思い、tty
RaspberryPiで新しい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-term
Debian システム (および派生製品) で発生します。
さもなければ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