remote サーバで pbcopy for iTerm2

pbcopy は MacOSX 用の標準入力をクリップボードにコピーしてくれる便利ツールだが、 local でしか利用できない。

しかしながら実際のところ、OSC52 エスケープシーケンスを使えば remote サーバからも クリップボードにアクセスできる。下記 url に詳しく書いてある。

ということで iTerm2 前提の remote サーバ用 pbcopy を用意してみた。

以下、おそらく不安定な nightly の iTerm2 を使い、 さらにセキュリティ上の問題をはらむ OSC52 を使う。

インストール

まず OSC52 で読み込めるデータサイズ制限をなくした iTerm2 をインストールする (そうしないと base64 encode 後の1024 byte しかコピーできず役に立たない)。 http://iterm2.com/downloads/nightly から nightly を ダウンロードし、解凍してでてきた iTerm.app を /Applications におけばいい (もっといいインストール方法がある気がする)。

また iTerm2 の Preference で "Allow clipboard access to terminal apps" にチェックをいれておく。

f:id:ks0608:20150118230050p:plain

あとは remote サーバで github から pbcopy をダウンロードすればいい。

[remote] $ wget https://raw.githubusercontent.com/shoichikaji/remote-pbcopy-iterm2/master/pbcopy
[remote] $ chmod +x pbcopy
[remote] $ mv pbcopy /path/to/bin/

使い方

普通の pbcopy と同じように使える。

[remote] $ echo "copy data to clipboard from remote!" | pbcopy

[local] $ pbpaste
copy data to clipboard from remote!

See also

iTerm2 の "OSC52 で読み込めるデータサイズ制限" に関する issue:

TeraTerm 版 pbcopy