免責
古め (2.1 以前?) の tmux の挙動は確認していません。
今回確認したのは tmux 2.7 での挙動です。
内容
言葉では非常に説明しにくいのですが、 tmux の設定で set-option -g mouse on
すると、マウスドラッグ終了時の挙動は次のようになります:
「ドラッグ範囲をバッファにコピーし、copy-mode を終了」
tmux では、 スクロールも copy-mode でおこなわれる (と私は理解しています) ため、(マウスで) 範囲選択するとその時点でスクロールがキャンセルされてしまいます。(選択範囲はちゃんとコピーされている)
しかし、個人的には次のような挙動だとありがたいです:
「ドラッグしたら範囲選択のみ。copy-mode は終了しない (=スクロールが巻き戻らない)。選択範囲をバッファにコピーしたいときは、明示的に何らかのキー入力をする」
つまり、tmux 以外の環境での普通のコピーと同じ挙動であってほしいということです。
(例えばブラウザでは、「範囲選択をしたら勝手にテキストがコピーされてスクロールが巻き戻る」ようなことはせず、「範囲選択は範囲選択。コピーしたいなら ctrl-C
やら cmd-C
やらで明示的にコマンド入力。コピー後に選択範囲をキャンセルしたり、スクロールが巻き戻ったりしない」ですよね・・・)
この挙動にするには、次のような設定を入れれば OK です:
# Explicit `Enter` key fires copying the selection
unbind -T copy-mode MouseDragEnd1Pane
bind-key -T copy-mode Enter send-keys -X copy-pipe "tmux copy-buffer"
Enter
の部分は好きなキーに変えてください。tmux のよく使われる 1 コピーのキーバインドと合わせるなら、 y
も自然かと思います。
(2行目は tmux.conf の設定例で bind-key -T copy-mode v send-keys -X begin-selection
と一緒によく見るので、すでに設定済みの人も多いと思います)
-
よく使われるというか、デフォルトのキーバインドなんだろうか? ↩