pbcopy/pbpaste
今まで知らなかったのが不覚中の不覚だと思いますがMac OS XではTerminalで
というコマンドが存在するのだそうです。
How to use
$ cat hoge.txt | pbcopy
でhoge.txtの内容がクリップボードにコピーされます。他のMac OS Xアプリケーションでその内容をペーストすることが可能になります。ただし注意しないといけないのは日本語を含む場合はデフォルトの状態だとShift JISしか受け付けてくれないということです。UTF-8も使えるようにする方法はd:id:viver:20080203に詳しいです。
pbpasteはいい使用例があまり思い浮かびませんが例えば
$ pbpaste | sed -e 's/foo/bar/g' | pbcopy
などとするとクリップボードの内容にフィルタをかけられます。またクリップボードの内容をファイルに保存したければTextEditを開いてペースとしてファイルとして保存、という手続きを踏むよりは圧倒的に
$ pbpaste > foo.txt
とするのが早いでしょう。
思いついた使用例
例えば引用をしたいけど引用元の「全角英数字」が鬱陶しいなぁ、半角に変えたいなぁなどと思ったとします。引用する文章をコピーした後、Carbon Emacsで作業してるとして、おもむろにM-!としてシェルを呼び出し
$ pbpaste | nkf -Z1 -s | pbcopy
などとすると手軽に全角英数字の除去が行なえます。これでC-yで内容をyankすればよい。
あとMac OS XのExcel 2008でしか確認してませんがExcelの表をコピーすると、クリップボードにはTSV(タブ区切りテキスト)の形で表がコピーされます。なので、id:witchmakers:20080602で紹介した拙作tsv2tex(今名前つけた)は次のように使えるわけですね。M-!して、
$ pbpaste | tsv2tex | pbcopy
で、Carbon Emacs使ってる場合はC-yでtexのtabularになった表をyankできるわけです。
今まで中間ファイルを生成してC-x iで挿入してたのと比べると大きな効率の改善です。返す返すもっと早く知ってればよかったと思いました。