tmux: vim に入るときにマウスを無効にする

tmux: vim に入るときにマウスを無効にする

私が vim と言う場合、それは tmux 内の vim です。

現在のシナリオ: 私は持っているvimrc でマウスが無効になっており、tmux.conf でマウスが有効になっている. マウスは vim 内でスクロールします。tmux-mouse を使用してスクロールし、履歴をスクロールします。

ケース1
tmux でもマウスを無効にすると (vim=off、tmux=off)、スクロールすると tmux の vim でカーソルが移動します (カーソルの位置合わせ)。

ケース2
vim でもマウスを有効にすると (vim=on、tmux=on)、コピーで問題が発生しますが、これは望ましくありません。そのため、vim ではマウスをオフにしておく必要があります。

目標は tmux でのみスクロールを使用することですが、vim ではスクロールするとカーソルが移動します (カーソルがページの端に到達すると、ある程度スクロールします。これはデフォルト設定です)。

私の質問は、tmux で vim に入るときに、vim があるペインでのみ vim でのマウス スクロールを無効にして (つまり、スクロールするとカーソルが移動するというデフォルトの動作が機能するように)、vim を終了するときに再度有効にするように動作を設定する方法があるかどうかです。

もっと簡単に言えば、tmux=on、vim=off のままにしておくと、vim での tmux=on の効果がオフになり、スクロールによってカーソルの位置が決まります。

答え1

私はこのプラグインを使用しました:tmux のより良いマウスモードそして、このフラグを次のようにオンにしました.tmux.conf:

set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"

これはまさに私が求めていた通りに機能しました。

答え2

この質問の表現は非常に不適切です。

vim でマウスを動作させたいかどうかは不明です。

その場合は、vim を設定してオンにする必要があります。そうすると、tmux はマウス イベントを自分で処理するのではなく、vim を実行しているペイン内のマウス イベントを vim に送信します。

vim でマウスを動作させたくない場合は、vim でマウスをオフにするだけで十分です。つまり、vim は tmux にマウスを要求せず、tmux はペインにマウス イベントを送信しません。

関連情報