El CapitanのTmuxからクリップボードにコピー


19

エルキャピタンのターミナルの変更に非常に満足しています(たとえば、この質問を参照)。

ただし、Tmux内からシステムクリップボードへのコピーを有効にする方法がわかりません。たとえば、マウスでTmux内のテキストを適切に選択できるようになったので、Tmuxの独自のバッファーに加えて、選択したテキストをクリップボードにコピーするにはどうすればよいですか?

私は次のものを持っていますtmux.conf

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

最後の行を変更してみました

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

しかし、実際には機能しませんでした。提案に感謝します!

ありがとう!


Cmd-Cが機能しませんか?
nohillside

1
@partix-いいえ、コピーされたテキストはマウスボタン(またはトラックパッド)を離した後に自動的に選択解除されます。もちろん、ターミナルでは動作しますが、ターミナル内のTmuxからは動作しません。
シフィエル

Tmux 2.1への更新により、Tmuxペインでマウスのスクロールが壊れました。
シフィエル

回答:


27

実際、Cmd + Cを使用してコピーを有効にする方法は非常に簡単です。

デフォルトのターミナルアプリケーションでは、[表示]-> [マウスレポートの許可]に移動し、チェックを外します。それでおしまい。

PS:明らかに、tmuxで分割画面をドラッグするなどの新しい便利な機能は、マウスのレポートをオフにすると機能しなくなります。


PS:以前は@siphiuelのソリューションを使用しましたが、これも正常に機能します。
-Oplatek

1
ありがとうございました!!!これが最も簡単な方法です!歴史が壊れていることだけ。私は歴史の一部しか見ることができません
佐藤

超いいね。これは動作します
-ShikharDua

また、これはリモートtmuxセッションでも機能します。このbind-key ... copy-pipeソリューションは、ローカルtmuxセッションの場合にのみ機能すると考えています。繰り返しますが、ローカルtmuxセッション内でリモートtmuxセッションを実行すると、動作する可能性があります。とにかく、「マウスの報告を許可する」のチェックを外すとうまくいきました。ショートカット⌘-R(Cmd-R)もあるので、すぐにオフにしてコピーを作成し、再度オンにすることができます。
アーロンウォレンティン

24

iTerm2 3.xを使用している場合、次を有効にすることでコピー/貼り付けを機能させることができApplications in terminal may access clipboardます。

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

マウスでテキストをハイライトして、OS Xクリップボードにコピーします!

通常のCmd+を使用して、OS Xクリップボードからtmuxに貼り付けることもできVます。


2
これが私にとって最も簡単な解決策でした。
レナート

これはすごい!
mljrg

17

ファンクションキーを押したままにすると、apple + cを使用して選択してクリップボードにコピーすることもできます。


私たちは、1行の回答以上のものを探しています。回答を拡大して、さらに詳細を示してください。
アラン

2
@Allanこれは完全な答えです。たとえ1行であってもです。とても簡単です。
pkuhar

ところで、私はそれが接続されたキーボードではなく、ラップトップのキーボードでのみ動作することがわかりました:(
amohr

8

実際、それがうまくcopy-pipeいかないと述べると、私は間違っていました。それはありません、とcopy-selectionのように、その後、不必要であるcopy-pipe任意のシェルコマンドにTMUXの台紙とパイプにコピーするテキストの両方。したがって、次の行が機能します。

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

ただし、yマウスボタンを放す前に押す必要があります。私はtmux-yankプラグインのドキュメントでこれに出くわしました:

「tmux mode-mouse onまたはmode-mouse copy-modeを使用して選択を行うとき、デフォルトの「選択後にコピーしてマウスを離す」動作に依存することはできません。代わりに、マウスを離す前にyを押します。

だからそれは動作yしますが、マウスで選択したテキストをコピーするために押すのはやや面倒です。


3
Terminal.appを使用している場合:macOS Sierraでは、Terminal.appの動作の退行により、これは機能しません。「reattach-to-user-namespace」ハックを再度使用する必要があります。
m1keil

1
@ m1keilのコメントに同意します。さらに、何らかの理由で、次のような追加のスイッチbrew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpasteを使用して
reattach

4

tmuxバージョン2.2以降を使用して、次をtmux.confファイルに追加します。

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

エルキャピタン10.11、tmux 2.7に対応
ホーマー

3

@Oplatekの回答が有効になります

デフォルトのターミナルアプリケーションでは、[表示]-> [マウスレポートの許可]に移動し、チェックを外します。

しかし、この方法では、マウスで画面をスクロールすることはできません。

無効にしない別の方法はAllow mouse reporting次のとおりFnです。マウスでテキストを押して選択します。


0

tmux 2.2、OS X El Capitan、ターミナルバージョン2.6.1(El Capitanに同梱されているデフォルト)を使用すると、次のセットアップは問題なく動作します(これまでのところ)。

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

コピーするには、マウスの左ボタンを押してテキストをマークし、放します。マークされたテキストはクリップボードに保存され、通常どおりCmd+ で貼り付けることができますv


-2

私は片道しか見つけません

ターミナル情報でターミナル設定/プロファイルを開き、ターミナルタイプをxterm-256からansiに変更して新しいターミナルウィンドウを開き、お楽しみください:)

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