
xfce4-terminalの使用中にこの質問をしていますが、一般的な回避策に興味があります。端末エミュレータがコンソールからマウスのサポートを通知するのを防ぐ方法はありますか? vimや他の場所でマウスのサポートが必要なよりもはるかに頻繁にマウスの選択とコピー/貼り付けが必要です。
答え1
このキーを押し続けるShiftと、通常のマウスを使用して選択できます。xtermマウス追跡有効です。これは私が知っているすべての端末エミュレータ(xterm
、vte
またはベース)xfce-terminal
で動作します。rxvt
特に、通常ターミナルではvim
デフォルトmouse
では有効になっていません。したがって、set mouse=a
システムにvimrcがあるか、オペレーティングシステムによって提供される可能性があります。~/.vimrc
いつでも以下を追加できます。
set mouse=
あなたのためにそれを無効にしてください~/.vimrc
。または:
if !has("gui_running")
set mouse=
endif
GUIバージョンで無効にしたくない場合はvim
。
terminfo
マウスのサポートは、この機能を含むkmous
データベースで(ある程度)広告されます。これで、すべてのアプリケーションがマウストレースを有効にするかどうかを判断するためにこれに依存するわけではありません。
この機能を削除するには、端末エントリ(ローカルのterminfoデータベースから)をオーバーライドできます。
infocmp -1x | grep -v kmous= | TERMINFO=~/.terminfo tic -x -
export TERMINFO=~/.terminfo
設定を使用するアプリケーションにはncurses
十分です。XM
習慣terminfo(5)
空の文字列に機能(で説明されていませんが、で言及されています)を追加します。これは、アプリケーションが端末から送信されたマウスイベントを処理するのを妨げるのではなく、アプリケーションがマウス追跡モードに入るシーケンスを送信するのを防ぐ。したがって、2つを組み合わせることができます。curs_caps(5)
curs_mouse(3)
infocmp -1x |
sed '/kmous=/d;/XM=/d;$s/$/XM=,/' |
TERMINFO=~/.terminfo tic -x -
export TERMINFO=~/.terminfo
答え2
/etc/vim/vimrc の末尾に次の 2 行を追加します。
set mouse=
set ttymouse=
答え3
私はこのパッチを使用しています:
--- a/src/vteseq.cc 2020-01-25 21:39:47.737317745 +0100
+++ b/src/vteseq.cc 2020-01-25 21:40:12.811424242 +0100
@@ -462,18 +462,7 @@
void
Terminal::update_mouse_protocol() noexcept
{
- if (m_modes_private.XTERM_MOUSE_ANY_EVENT())
- m_mouse_tracking_mode = MOUSE_TRACKING_ALL_MOTION_TRACKING;
- else if (m_modes_private.XTERM_MOUSE_BUTTON_EVENT())
- m_mouse_tracking_mode = MOUSE_TRACKING_CELL_MOTION_TRACKING;
- else if (m_modes_private.XTERM_MOUSE_VT220_HIGHLIGHT())
- m_mouse_tracking_mode = MOUSE_TRACKING_HILITE_TRACKING;
- else if (m_modes_private.XTERM_MOUSE_VT220())
- m_mouse_tracking_mode = MOUSE_TRACKING_SEND_XY_ON_BUTTON;
- else if (m_modes_private.XTERM_MOUSE_X10())
- m_mouse_tracking_mode = MOUSE_TRACKING_SEND_XY_ON_CLICK;
- else
- m_mouse_tracking_mode = MOUSE_TRACKING_NONE;
+ m_mouse_tracking_mode = MOUSE_TRACKING_NONE;
m_mouse_smooth_scroll_delta = 0.0;
vteはもはや私のマウスを気にしないので、vimは私がマウスを持っていることを知りません。
答え4
少なくともxterm
(動作していないようですurxvt
)次のように実行して「マウスを無効にする」ことができます。
xterm -xrm xterm*allowMouseOps:false