tmuxを使用してマウスでコピーして貼り付ける方法


44

私はtmuxOSX を使用しています。ターミナルからコピーして貼り付けるときに、テキストtmuxを押したままOption選択することができます。ただし、ペイン内にテキストを保持することはできません。したがって、テキストをコピーする場合は、以下に示すように、ペインを左端まで循環させるか、ペインをズームする必要があります。

これは、Optionキーを押し続ける必要があることに加えて、苦痛です。私は視覚モードに入り、vimの動きを使用してそこに到達できることを知っていますが、マウスを使用する方法が必要です。誰かがこれの回避策を見つけましたか?

ここに画像の説明を入力してください ここに画像の説明を入力してください


「ただし、テキストをペイン内に収めることはできません。」これはどういう意味ですか?
ブラザード

回答:


36

このコードブロックをに置きます~/.tmux.conf。これにより、マウスの統合が可能になり、ズームせずにマウスでペインからコピーできます。

set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -t vi-copy    C-WheelUpPane   halfpage-up
bind -t vi-copy    C-WheelDownPane halfpage-down
bind -t emacs-copy C-WheelUpPane   halfpage-up
bind -t emacs-copy C-WheelDownPane halfpage-down

# To copy, drag to highlight text in yellow, press Enter and then release mouse
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"

その後、tmuxセッションを再起動します。マウスでテキストをハイライトしますが、マウスを放さないでください。テキストが強調表示され、マウスが押されている間に、リターンキーを押します。ハイライトされたテキストは消え、クリップボードにコピーされます。マウスを離します。

これとは別に、上下にスクロールしたり、アクティブなペインを選択したりするなど、マウスでできることもいくつかあります。

macOS でtmuxの新しいバージョンを使用している場合は、上記の代わりに次を試してください。

# macOS only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

macOSでiTermを使用している場合は、iTerm2> [設定]> [全般]タブに移動し、[選択]セクションで[ターミナル内のアプリケーションがクリップボードにアクセスする]をオンにします。

Linuxおよびtmuxの新しいバージョンを使用している場合、

# Linux only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"

(他の多くのtmuxオプションについては、https://github.com/gpakosz/.tmuxをチェックしてください。)


1
最後に、実際に機能するもの!コピーと貼り付けは、tmuxを試す上で最も厄介なことです。以前はあきらめましたが、試していた設定スニペットは一貫性のない動作をしていました。
ブレノ

1
Macでitermを使用していて、iTerm2>環境設定>「一般」タブを有効にし、「選択」セクションで「ターミナルのアプリケーションがクリップボードにアクセスする」を有効にする必要がありました。参考:rushiagr.com/blog/2016/06/16/...
Rujootaシャー

@RujootaShahはい、それは正しいです。あなたはそれをする必要があります。共有してくれてありがとう。
GMaster

1
ありがとう!魅力のように機能します。sudo apt-get install -y xclipただし、(Ubuntu Linux)をインストールする必要がありました。
ペトル

完璧に動作します、@ GMasterに感謝
Luja Shrestha
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.