Skip to content

Instantly share code, notes, and snippets.

@ttdoda
Last active June 17, 2020 14:03
Show Gist options
  • Save ttdoda/6c30de9a5f2112e72486 to your computer and use it in GitHub Desktop.
Save ttdoda/6c30de9a5f2112e72486 to your computer and use it in GitHub Desktop.
OSC 52 でのクリップボード書き込み (zsh用関数定義)
#
# paste64 -- OSC 52 (PASTE64) を利用した端末エミュレータ経由でのクリップボード書き込み
#
# 使い方:
# % ls | paste64
# ls の結果をクリップボードに書き込む。
#
# % cat hoge | nkf -s | paste64
# ファイル hoge の内容(日本語を含む)をクリップボードに書き込む。
# 漢字コードの扱いは端末依存。
# 例えば Tera Term の場合は現状では変換をまったく行わない為、
# 事前に CP932 に変換する必要がある。
# 将来のバージョンではTera Termで変換を行うようにする予定。
#
# 注意点:
# OSC 52でのクリップボードアクセスはセキュリティ面の懸念から、
# デフォルトでは無効にしている端末が多い。
# 例えば Tera Term では、[設定]-[その他の設定]-[制御シーケンス]にある
# "リモートからのクリップボードアクセス"で書き込みを許可する必要がある。
# この設定を変更した場合はリモートホスト側からクリップボードへのアクセスが
# 行えるようになるため、信頼できないホストへの接続時に利用するのは危険。
#
# 参考:
# http://doda.b.osdn.me/2011/12/15/tmux-set-clipboard/
# http://qiita.com/kefir_/items/1f635fe66b778932e278
# http://sanrinsha.lolipop.jp/blog/2013/01/10618.html
#
# License: CC0
#
function paste64() {
echo -ne '\e]52;0;'
base64 | tr -d '\012'
echo -ne '\e\\'
}
@ttdoda
Copy link
Author

ttdoda commented Dec 2, 2015

zsh用というのはzshでしか確認していないという事です。(主にechoの挙動まわり)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment