tmuxのバッファとOS Xのclipboardを連携する

こんにちは.便利ツールの海をビート板で必死に泳ぐきたけーです.

tmuxにはバッファというクリップボードのようなものがあります.
が,これはtmux内で使うものなので,コピーした内容をtmuxとは別のアプリで使ったり,逆に別のアプリでコピーした内容をtmuxに持っていくことはデフォルトではできません.

ということで,今回はtmuxのバッファとOS Xのclipboardを連携する方法を紹介します.

tmux-MacOS-pasteboardのインストール

まず,tmuxと連携するためのコマンドをインストールします.

Githubからcloneしてビルドしましょう.

git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
cd tmux-MacOSX-pasteboard
make

ビルドが終わったら,reattach-to-user-namespaceというコマンドができているので,これをパスが通っている適当な場所に移しましょう(僕は~/binに置いてます).

tmuxの設定

以下の設定を.tmux.confに記述することで

  • (事前にバッファに書き込んだ上で)PREFIX Ctrl-cを押してtmuxのバッファからclipboardへコピーする
  • PREFIX Ctrl-vを押すと、clipboardからtmuxのバッファにコピーしつつ貼りつける

ことができるようになります.

set-option -g default-command "reattach-to-user-namespace -l $SHELL"
bind-key C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind-key C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

バッファにコピーした上でPREFIX C-cするのがちょっと面倒ですが,clipboardと連携することができるようになりました.

参考サイト

http://unix.stackexchange.com/questions/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard