web-dev-qa-db-ja.com

真夜中の司令官はxtermを永久に強制します

Midnight Commander4.8.16を使用しています。 xterm 256色を設定した場合:export TERM=screen-256colorその後、マウスは機能しませんが、xtermを強制します:mc -x問題を解決します。

Xtermを永続的に強制する方法(エイリアスを使用せずにmc configで)?

1
vlad

TERM=screen-256colorの使用が問題のようです。ソースコード( tty_check_term )では、Midnight Commanderはそれを「xterm」として扱います(そしてサポートすることを決定します)マウス)DISPLAYも設定されている場合のみ。コメントを無視して(間違っています)、ソースコードを読んでください。関数の戻り値は、 main.c から1か所で使用されます(ここでも、コメントは無視してください。。。 )。

Midnight Commanderは、端末の説明の実際の内容を無視します。これは、この構成がxtermスタイルのマウスをサポートしていることを示しています(つまり、説明にkmous=\E[M,が存在します)。これは、スラングを使用して問題を回避するために行われます。スラングは、TERMのみを調べて、端末の説明も無視します。これは1990年代にさかのぼる古いバグです。

回避策として、couldDISPLAYが設定されていない場合はダミー値に設定します。これは、MidnightCommanderがこのチェック以外のことを行わないためです。環境によっては、他の副作用が発生する場合があります。

参考文献:

kmous機能の割り当てには注意してください。 ncursesは、キーボードでマウストラッキング情報を返すことができるxtermのような端末やエミュレーターで使用するために、それをKEY_MOUSEとして解釈したいと考えています-入力ストリーム。

2
Thomas Dickey