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が利用できる.