viコピーモードバインディングとxclipを備えたTmux 2.4以降:
set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
古いtmuxバージョン、emacsコピーモードバインディング(デフォルト)、または非Xプラットフォーム(つまり、xclipなし)については、以下の説明を参照してください。
説明:まず、tmuxがマウスをキャプチャし、マウスイベントをバインドできるように、マウスオプションを有効にする必要があります。
set-option -g mouse on
Gnome-terminalは、xtermエスケープシーケンスを使用したクリップボードの設定をサポートしていないため、set-clipboard
オプションがオフであることを確認する必要があります。
set-option -s set-clipboard off
このオプションは、iTerm2でデフォルトでサポートおよび有効化されている場合があり(set-clipboard
tmuxマニュアルを参照)、そこでの動作を説明します。
次に、コピーモードMouseDragEnd1Pane
「キー」、つまり、ペインでクリックしてドラッグした後に最初のマウスボタンを離したときに、現在のコピーモード選択(のデフォルトバインディングによって作成されたMouseDrag1Pane
)をパイプ処理するtmuxコマンドにバインドできますシェルコマンドに。このtmuxコマンドはcopy-pipe
tmux 2.4の前にあり、その後に変更されましたsend-keys -X copy-pipe[-and-cancel]
。シェルコマンドについては、システムクリップボードの内容をパイプされたものに設定するものが必要です。xclipは、次のコマンドでこれを行うために使用されます。"xclip -selection clipboard -i"
非Xプラットフォームでの以下の同等の代替は、"wl-copy"
(Wayland)、"pbcopy"
(macOS)、"clip.exe"
(Windows、WSL)、および"cat /dev/clipboard"
(Cygwin、MinGW)です。
Tmux 2.4+:
# For vi copy mode bindings
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
Tmux 2.2から2.4:
# For vi copy mode bindings
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
tmux 2.2より前:
マウスドラッグ後のコピーのサポートは、新しいmode-mouse
オプションをに設定することにより、元々Tmux 1.3で追加されましたon
。Tmux 2.1は、マウスサポートを使い慣れたマウスキーバインディングに変更しましたが、バインディングはなくDragEnd
、2.2で導入されました。したがって、2.2以前は、マウスドラッグでシステムクリップボードを設定する唯一の方法は、組み込みのxtermエスケープシーケンス(set-clipboard
オプション)を使用することでした。これは、set-clipboard
GNOME端末など、サポートしていない端末のドラッグアンドコピー動作を取得するには、少なくともtmux 2.2に更新する必要があることを意味します。