tmuxのクリップボードに選択項目をコピーする

tmuxのクリップボードに選択項目をコピーする

macOSのiTerm2でマウスでtmuxからテキストを選択すると、選択したテキストがクリップボードにコピーされます。 [追加]ボタンをクリックする必要はありませんでした。目的のテキストのみを選択すると、操作が完了します。

macOSのTerminal.appでtmuxをテストしましたが、動作しません。y選択内容をクリップボードにコピーするにはクリックする必要があります。

私はマウスバインディング(それと似ていますMouseOnSelection)があると思いますMouseDown1Paneが、Webやその周辺では役に立つものが見つかりませんman tmux

Ubuntu 16.10(好ましくはGnome Terminal)で同様の動作を達成する方法があるかどうか疑問に思います。

ベストアンサー1

Tmux 2.4+はviコピーモードにバインドされていますクリップ:

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 -selection clipboard -i"

以前のバージョンのtmux、emacsコピーモードバインディング(デフォルト)、またはX以外のプラットフォーム(xclipなし)の場合は、以下のガイドラインを参照してください。


手順:まず、tmuxがマウスをキャプチャしてマウスイベントをバインドできるように、マウスオプションを有効にする必要があります。

set-option -g mouse on

set-clipboardGnome-terminalはxtermエスケープシーケンスを使用したクリップボード設定をサポートしていないため、対応するオプションがオフになっていることを確認する必要があります。

set-option -s set-clipboard off

このオプションはiTerm2でデフォルトでサポートされ有効になっています(set-clipboardtmuxのマニュアルを参照)。ここでは動作について説明します。

次に、MouseDragEnd1Paneコピーモード"キー"(つまり、ウィンドウ内でクリックしてドラッグした後、最初のマウスボタンを放すとき)を現在のコピーモードの選択(デフォルトのバインディングによって実行されますMouseDrag1Pane)を取得するtmuxコマンドにバインドし、それをシェルコマンド。このtmuxコマンドはcopy-pipetmux 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).

ティモックス 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はマウスサポートを使い慣れたマウスキーバインディングに変更しますが、DragEnd2.2で導入されたバインディングはありません。したがって、2.2以前では、マウスドラッグ時にシステムクリップボードを設定する唯一の方法は、組み込みのxtermエスケープシーケンス(オプションset-clipboard)を使用することだと思います。これは、サポートされていない端末set-clipboard(GNOME端末など)のドラッグアンドドロップ操作を取得するために少なくともtmux 2.2に更新する必要があることを意味します。

おすすめ記事