vimでマウススクロールイベントをキャプチャする方法は?

vimでマウススクロールイベントをキャプチャする方法は?

私はテキストエディタを書いています。

機能1049(代替画面)モード+1000(マウストラッキング)モードが有効になっていると、端末はマウススクロールイベントとクリックイベントをキャプチャできます。クリックイベントは必要ありません。

また、マウスを使用した他の便利な操作(端末画面でテキストを強調表示して外部コピー - 貼り付け)を許可しないという欠点もあります。

スクロールイベントでカーソル位置がこれを反映するように変更される理想的なマウス動作があるので言うのに対しvim、クリックイベントは影響を与えないようです。また、点滅を引き起こさない方法で行われます。

1049 + 1007を使用しないということはvim

私の質問:vimこれはどうなりますか?

ソースコードを検索してみましたが、見つかりません。また、画面に書き込むエスケープシーケンスを追跡してみました。これは私が試した両方の端末エミュレータで動作します。

ベストアンサー1

vimは何年も使ってきたlibvtermのコピーにハードコードされています。状態.c:

  case 1000:
  case 1002:
  case 1003:
    settermprop_int(state, VTERM_PROP_MOUSE,
        !val          ? VTERM_PROP_MOUSE_NONE  :
        (num == 1000) ? VTERM_PROP_MOUSE_CLICK :
        (num == 1002) ? VTERM_PROP_MOUSE_DRAG  :
                        VTERM_PROP_MOUSE_MOVE);
    break;

xtermを実装するふりをするすべてがあるとします。どんな出来事でもそして任意のボタンコントロール。多くのvim用語.cどのxterm-wannabeを使用できるかを調べようとしています。どちらも正確ではありませんが、libvtermは実行されたチェックを無視します。

(プログラムが何をするのかを知りたい場合は、始める最も効果的な方法はソースコードを読むことです。)

おすすめ記事