Help us understand the problem. What is going on with this article?

iTerm2のクリップボードインテグレーション(OSC 52/PASTE64)のつかいかた

More than 5 years have passed since last update.

=============================================================

OSC52(PASTE64)のwrite accessが有効になったiTerm2のビルドが出たので、iTerm2での具体的な使用方法をご紹介します。現状では主にtmuxユーザーに恩恵があります。

OSC52/PASTE64はxterm由来の機能で、端末エミュレータからクリップボードを操作するためのものです。

OSC52に関しては、すでに去年のターミナルマルチプレクサアドベントカレンダーで@ttdodaさんが言及していますので、興味ある方はこちらもご覽ください。

リモートの tmux でコピーした内容のローカルのクリップボードへの反映

設定方法

先日のビルドで加わったグローバル設定、"Allow clipboard access to terminal apps"にチェックを入れます。
これだけです。

osc52

tmuxを立ち上げて、コピーモードでtmuxのコピーバッファに何かコピーしてみましょう。

どういうこと?

tmuxはこんな感じのシーケンスを端末に送っています。

$ printf "\033]52;;%s\033\\" `printf Hello|base64`

これでMacのペーストボードに"Hello"という文字列が入ると思います。
Emacsではsend-string-to-terminalを使ってわりと簡単に連携できそうですね。

実は以前のiTerm2でもOSC50/CopyToClipboardというシーケンスで同じことができたのですが、これは完全に独自拡張で追従する実装がありませんでした。(今でも"Allow clipboard access to terminal apps"の設定が有効なら以前と同様に使えます)

read accessに対応する端末では

$ printf '\033]52;;?\033\\'

とするとクリップボードの内容が読み出せるのですが、iTerm2ではセキュリティの問題などを勘案し、時期早尚と判断されたため実装は見送られました。

注意点

OSC 52にはセキュリティ上の懸念があることには留意しておくべきです。
@ttdodaさんの記事でも言及されていますが、セキュリティコンテキストの異なるサーバーへSSHする時などは、影響を考えて賢く使いましょう。

プロファイルごとに有効・無効を切り換えられないの?

できません。
iTerm2はOSC50/SetProfileという端末シーケンスを使って動的にプロファイルを切り換えられるので、プロファイルごとにセキュリティ設定を切り換えるという発想は現状では厳しいです。

Terminal.appでも使いたい

Terminal.appの端末エミュレーションを強化する、mouseterm-plusを使う、という方法があります。
他のOSでも使いたい場合、write accessだけの利用であればxterm、TeraTerm、RLogin、mltermなどの選択肢があります。
端末とクリップボードの連携ソリューションには様々なものがありますが、選択肢のひとつとして検討してみてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした