2009/08/29

screenのペーストバッファを自動でOSXのクリップボードに送る方法

OSXで screenを使っている自分には非常に参考になる記事がありました。

screen のペーストバッファの内容をコピー時に自動で OSX のクリップボードに送る

なるほど、コピーモードのキーバインドに OSXのクリップボードを操作するコマンドを割り込ませているわけですね。これだと screenを縦分割していても問題なくコピーできますね。いままでは Terminal.appの行ごと選択して頑張って削ってました。

上記記事を参考にして、最終的にこのように設定しました。
bufferfile 'screen/screen-exchange'

bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < screen/screen-exchange"'
bindkey -m Y   eval 'stuff Y'    'writebuf' 'exec sh -c "/usr/bin/pbcopy < screen/screen-exchange"'
bindkey -m W   eval 'stuff W'    'writebuf' 'exec sh -c "/usr/bin/pbcopy < screen/screen-exchange"'
  • bufferfileは自分で決めているパスがあるのでそれを指定
  • コピーモード中のyキーは行選択でありコピーモードの終了ではないので定義しない
ただし、これだとコピーモード開始時のスペースで pbcopyが動作してしまいます。あまり嬉しくありませんが、コピーモードの開始と終了のスペースを判断する術が分からないので、これくらいは我慢します。