マウスを選択した後、tmux出力からシステムクリップボードにコピーするにはどうすればよいですか?


82

システムクリップボードにコピーするには、tmuxウィンドウでShiftキーを使用してマウステキストで選択する必要があります。そして、私はこのコマンドを実行する必要があります:

tmux save-buffer - | reattach-to-user-namespace pbcopy

システムクリップボードに保存するのは簡単ですか?キーバインド以上は、Shiftリリース後に自動的に行います。

私のtmux構成:https//gist.github.com/3641580


これはunix.stackexchangeに関する同様のQ&Aです
crw 2012

2
これらのいずれかがMacOS、特にSierraで機能しますか?むしろ、それらのどれもしません、誰かが何をするか知っていますか?この質問にはタグが付けられてosxいますが、回答は左クリックと中クリックについて話しています...
dwanderson 2017年

回答:


192

iTerm2を使用している場合は、Tmuxセッションでテキストをコピーし、Optionキーを押しながらマウスをドラッグして選択することができます。

次に、通常どおりCmd+を使用してテキストをどこにでも貼り付けることができるはずVです。ここで見つけました:http//web.archive.org/web/20131226003700/http//ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/


26
tmuxペインには役立ちません
Jak S

41
ペインがある場合は、<alt> + <cmd> +マウス選択を使用して長方形の選択を行うことができます。
jomuller 2015年

6
長方形の選択では、選択を任意の列で開始および終了できるため、ペインに同じ機能は提供されません。このソリューションはtmuxではなく、端末自体に関連しています。ペインはtmuxのコア機能です。
betamos 2015年

6
@JakS prefix + Zは、現在のペインをズームします。そうすれば、その問題は発生しません。あなたもvimスプリットの中にいない限り:)
dgmora 2016年

10
ターミナルでは、「fn」キーを押しながらテキストを選択できます。選択したテキストを「Cmd + C」でコピーできます。
fbessho 2017年

58

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

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

マウスでテキストを強調表示して、OSXクリップボードにコピーするだけです。Optionアクセプターの回答で提案されているように押す必要はありません。

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


1
reattach-to-user-namespaceLinuxマシンにSSH接続することが多いため、ベースのアプローチのすべてが機能するわけではありません。ただし、このソリューションはうまく機能します。ありがとうございました!
jdg 2016

素晴らしい答え。vimを使用していて、マウスでvimの選択をアクティブにしたくない場合でも、<kbd> Option </ kbd>を使用します。
Chad Skeeters 2017年

これは美しく機能しました。構成を変更する必要はありません。ありがとう。
muammar 2018

これはtmuxだけでうまく機能しますが、そのtmux内で実行されているvimヤンクをitermおよびシステムクリップボードに送信するにはどうすればよいですか?
schlow

@schlowこれはおそらく別のVim + tmux StackOverflowの質問になるはずですが、私もVimを使用set clipboard=unnamedしていて、その目的でvimrcに追加しました
JeromeDalbert19年

28

ここで答えられる同様の質問があります:https//unix.stackexchange.com/questions/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard

そこで見つかった解決策:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux show-buffer | xclip -i"

また、チェックしてください:http//awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

次のオプションを設定した場合:

マウス-選択-ペイン

マウス選択ウィンドウ

テキストをまったく選択できないことに気付くでしょう。

解決策は、Shiftキーを使用することです。

hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.

4
itermでは、Shiftキーの代わりにOptionキーを使用します。[ここで言及されているように:awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse ]
gatoatigrado 2013年

2
MacOSの場合、xclip -o=> pbpastexclip -i=> pbcopy
gingi 2016

23

os xの場合、アプリ「ターミナル」を使用する場合。マウスのスクロールをオフにして、通常のコピー/貼り付け機能(cmd + c / cmd + v)を使用できます。

set-option -g mouse-select-pane off
set-option -g mouse-resize-pane off
set-option -g mouse-select-window off
set-window-option -g mode-mouse off

または、マウススクロールを使用し、「fnキー」を使用してテキストを選択できます。

set-window-option -g mode-mouse on

16
fnキーチップは命の恩人です!多くの人が使用を提案してALTいますが、最新のMac OS xでは機能しません
AK_ 2017

1
さらに良い-fnオプションを組み合わせて列モードを使用して選択します!
Fletch 2018年

fnキーを変更する方法はありますか?fnキーのない外付けキーボードを使用する!
CentAu

@CentAu代わりに「ウィンドウ」キーを使用してみてください
PiotrekZatorski20年

19

tmuxバージョン2.2以降を使用するOSXでは、tmux.confファイルに以下を追加します。

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

tmuxバージョン2.4の場合、コマンド構文を変更することを親切に決定したため、次を使用する必要があります。

bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"

reattach-to-user-namespace pbcopyプレーンの代わりに使用する必要がある場合もあることに注意してくださいpbcopy


また、Ubuntu 16.04では、これはtmux2.1では問題ではなくなりました。端末のデフォルトのコピー&ペースト方法を使用できます。
CiroSantilli郝海东冠事病六四事件法轮功2016年

なぜこれがリストの中でそれほど低いのか分かりません、これは正しい答えです!
shawkinaw 2017

11

これを〜/ .tmux.confファイルに入れるとうまくいきます:

bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"

私が見つけた他のすべての潜在的な解決策は、ある種の空のコンテンツをOSXクリップボードにコピーすることでした。

唯一の問題は、これにより、貼り付けられたコンテンツの最後にキャリッジリターンが表示されるように見えることです。


3
これは機能しますが、選択後にPREFIX + yを押す必要があります。Linuxターミナルのように選択するだけでOSXのtmuxセッションからテキストをコピーする方法はありますか?
Rafael Bugajewski 2015

6

マウスの左ボタンを押したまま、ペインでテキストを選択し、ボタンを押したままにします。次に「y」を押すと、クリップボード内の選択が保存され、選択/コピーモードが終了します。

ここでは、iTerm 3.1.beta.5、tmux 2.5、および次の構成で動作します。

### copy & paste -------------------------------------------------------
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"

+1最後に、機能する最新のソリューション。ありがとう。-事前に入力せずに、Enterをオーバーライドするだけで問題ないようunbindです。
ThomasH 2017年

Tmuxバージョン3以降はcopy-mode-viを使用しますが、古いバージョンはを使用しcopy-modeます。
MutantMahesh

5

Shiftキーを押してからマウスクリック!! このリンクを確認してください。 http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/


この質問は非常に古く、ソリューションをiTermで使用するには正しくありません。現在受け入れられている答えは正しいものです。
OGHaza 2013年

これはGnomeターミナルで機能しますが、この質問はOSXについて尋ねています
JKirchartz 2015年

3

macOS High Sierraのアプリでウィンドウから+でテキストを選択した後、CMD+でこの問題を解決することができました。CFNmouse drag with left button downtmuxTerminal



1

これが、tmuxバージョン2.8、macOS Mojave 10.14.1、およびTerminal.appで使用しているソリューションです。

マウスボタンを離した後、これにより、システムクリップボード(およびtmuxバッファ)へのコピー中に選択が削除されます。

bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

0

mosh + tmux + vim +ネストされたセッションの任意の組み合わせで機能する堅牢なソリューション

これに取り組むために何日も費やした後、私が発見した最も堅牢なソリューションは、Suraj N.Kurapatiの投稿されたソリューションです。この溶液を用いて(とせずに)TMUX V3.2および/またはVIM、ならびに遠隔有する(及び無し)ローカル動作TMUXおよび/またはVIM、コピーモードキーと単純なマウス選択の両方を使用して、を使用動作します。

Mike Gulickの(現在開いている)プルリクエストと組み合わせると、これらの組み合わせはすべてmoshでも機能します。

Mikeのソリューションがmoshにマージされるまで、彼の変更をプルして、以下を使用してローカルでビルドできます。

Ubuntu:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 \
&& sudo apt-add-repository https://cli.github.com/packages \
&& sudo apt update \
&& sudo apt install -y gh autoconf automake perl protobuf-compiler libprotobuf-dev libncurses-dev zlib1g-dev libutempter-dev libssl-dev pkg-config \
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

マックOS:

最初にAppleのXcode / Developerコマンドラインツールをインストールしてから(IIRCは、実行gccして終了するだけで実行できるようになりました)、次に実行する必要があると思います。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" \
&& brew install gh autoconf automake
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

これらの更新により、クリップボードの聖杯がついに実現しました!

ただし、これは非常に新しい情報であるため、この投稿はかなり不安定です。したがって:

次の場合は、私の投稿を修正してください。

  1. 依存関係などがありません、または
  2. gh pr checkout 1104マイクの変更を実行する必要はなくなりました。これは、モッシュにマージされているためです。
  3. マージされた変更がbrew / apt / etcパッケージマネージャーにプッシュされたため、ソースからのビルドは不要になりました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.