私はtmuxバッファの内容をクリップボードにコピーする良い方法を見つけようとしています。私は次のようないくつかの他のことを試しました。
bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer
これはかなり近づいた。私がしなければならなかったのは、prefix-pを実行した後にCtrl-dを押すだけでした。
私はこの問題を解決しようとしました。
bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE'
しかし、これはうまくいきません。実際にペアリングしてみると
bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE'
何もしないので、ペインはシェルコマンドで<<が好きではないと仮定します。
どんなアイデアがありますか?
編集:必要に応じてスキップできますが、select-pane -t 2
問題ありません。私は特定のレイアウトのみを使用し、ウィンドウ2は他のタスクを実行するときに分割することを好むので、デフォルトでは分割に関連するバインディングに移動します。
答え1
これは働きます:
# 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 save-buffer - | xclip -i"
答え2
このcopy-pipe
コマンドはバージョン1.8から追加されました。選択をtmuxバッファにコピーし、それをコマンドにパイプします。これでプレフィックスバインディングは必要ありません。例は次のとおりです。
bind -t vi-copy y copy-pipe "xclip"
# For OS X users:
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
copy-mode
ここでいくつかのテキストを選択すると、yそのテキストはオペレーティングシステムのクリップボードだけでなくtmuxバッファにもコピーされます。ただし、クリップボードからtmuxバッファにテキストをインポートしたい場合は役に立ちません。
答え3
Mac OS-X用のよりシンプルなソリューション
これはAlexの答えに基づいており、当時は存在しなかったものを使用します。
使用する場合自家製(そうでなければなぜできないのですか?)それでは、次のようにすることができます。
brew install reattach-to-user-namespace
それから~/.tmux.conf
:
set-option -g default-command "reattach-to-user-namespace -l zsh" # or bash...
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
コピーするバッファーtmux(tmuxを使用して何かをコピーする必要があります)からMacペーストボードとして<tmux-key> Control-c
Now available forCommand-v
またはを使用します。pbpaste
Macクリップボードのコンテンツを貼り付けるには、を使用します<tmux-key> Control-v
。
答え4
試してみたいかもしれませんtmux-yankプラグイン。システムクリップボード(OS XおよびLinux)に直接コピーできるだけでなく、現在のシェルラインをインポートするなどの他の利点もあります。