Help us understand the problem. What is going on with this article?

tmux でマウスドラッグ終了時の挙動を「自動コピーして copy-mode 終了」ではなく「テキスト選択して copy-mode 続行」に変える

More than 1 year has passed since last update.

免責

古め (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 と一緒によく見るので、すでに設定済みの人も多いと思います)


  1. よく使われるというか、デフォルトのキーバインドなんだろうか? 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした