Midnight Commanderはマウスホイールの使用について混乱しています。

Midnight Commanderはマウスホイールの使用について混乱しています。

私はmcそれを定期的に使用しており、長年にわたって完璧に動作しました。しばらく前(何週間)mcマウスホイールと混同して、次のようなANSIエスケープシーケンスを画面に印刷したようです。

[97;14;10M[96;15;10M[97;16;10M[96;16;10M[96;16;10M

3桁の数字を含むANSIシーケンスが見つかりません。中サイズしかし。97こんな意味だと思いますがroll up96こういう意味なんですねroll down。他の数字は謎です。

さらに、奇妙なことは、これらのエラーが予測できず、使用中いつでも発生する可能性があることですmc。そして見知らぬ人もいます。mc1つの端末で1つを開くと正常に動作しますが、もう1つの端末では1つがmc失敗します。

最後は、欠陥が共通の要素ではないことを示すようです(おそらくgpmそうかもしれません)。

私はSlackware 14.2、urxvt(v9.22)、am$光マウスを使用しています。どこを見るべきかを知っている人はいますか?私も走ってmc行き、スクロールが比較してみるとrxvt少し遅いようでしたurxvt

ベストアンサー1

これはurxvtの1015拡張マウス座標です。http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking(BTW、2番目と3番目の数字はセル座標です)。このプロトコル拡張の主な目的は、223以上のマウス座標をサポートすることです。

別のより有利な拡張はxtermのSGR 1006モードであり、urxvt拡張のいくつかの欠点なしに同じ問題(およびそれ以上)を解決します。 Xtermの1006モードはurxvtの1015モードを使用しなくなりました。

しかし、rxvt-unicode(urxvtとも呼ばれます)は、私が知っている唯一の端末エミュレータでマウスイベントをサポートしています。いいえこの拡張をサポートしてください。 2012年1月に著者と話をしましたが、彼は私が理解できない理由でこのモードの実装を拒否しました。たぶん、誰かが再試行する必要があります。 urxvtには数行の単純なコードしか必要ありません。

Midnight Commanderはこの新しい拡張されたxterm拡張を実装し、urxvt拡張を実装しなくなりました。詳しくはMCチケットをご覧ください2662そして2956

つまり、通常、mcはurxvtがサポートしていない拡張を要求する必要があるため、拡張を使用せずに続行します(マウスは223列までのみ機能します)。

あなたの場合、このマウス拡張が有効になっていると、アプリケーションは異常終了を実行する可能性があります。 mcを終了して実行してこの拡張を無効にし、echo -ne '\e[?1015l'最後にmcを再起動できます。

残念ながら、urxvt-9.21では、このコマンドはreset実際には無効にする必要がありますが、この拡張は無効にしません。私はこれがバグだと思います。

この繰り返しの問題が本当に面倒な場合は、上記のエスケープシーケンスをプロンプトに含めるか、1006拡張をサポートする他のエミュレータに切り替えることをお勧めします。または、シャットダウン時にこの拡張機能を有効にしたアプリケーションを追跡して修正します。

おすすめ記事