Macでtmuxを使うときのメモ

Macには,pbcopy/pbpasteという標準入力をクリップボードへコピー/クリップボードの内容を標準出力へ出すコマンドがある.
とても便利で,次のように使う.

# hoge.txtのうち,行頭が「abc」以外の行をコピー
cat hoge.txt | grep -v ^abc | pbcopy

こうすることで,Command+vで他のプログラム等に貼り付けることができる.
例えば,ブログにプログラムのコードや実行結果を貼り付ける時などに役立つ.

逆に,Webからコピったものをコマンドラインプログラムの入力として使いたい場合,

# クリップボードの内容をソートして最後の20行を出力
pbpaste | sort | tail -20

という風に使える.

が,問題があって,tmuxを使っている場合うまく動かない.
そこで,reattach-to-user-namespaceというのを使う.
詳しくは

X環境のクリップボードやOS Xのペーストボードとtmuxのバッファを連携する方法

あたりを参照.

ざっくりいうと

git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
cd tmux-MacOSX-pasteboard
make
mkdir -p /usr/local/bin
cp reattach-to-usernamespace /usr/local/bin

しておき,tmuxの設定ファイル, ~/.tmux.confに以下を追記する.

# tmuxでコピーが働かない問題
set-window-option -g automatic-rename off
set-option -g default-command "reattach-to-user-namespace -l zsh"
set-window-option -g automatic-rename on

ちなみに,/usr/local/binにPATHを通しておくこと.

これで,tmux環境下でもpbcopy/pbpasteが利用できる.