先日、Mac OS のバージョンを 10.6 (Snow Leopard) にアップグレードした。そしたら、X11.app の Emacs アプリから Firefox や Safari に日本語をコピペできなくなってしまった。コピーする日本語が、ことごとく文字化けしてしまう (ASCII 文字のコピペに関しては OK)。
ネットを徘徊すること 3 時間。ようやく関連するエントリーを見つけた。
次のコードを .emacs に貼り付けると文字化けせずコピペできるやうになる。
(if (eq window-system 'x) (progn (defun paste-to-osx (text &optional push) (progn (let ((process-connection-type nil)) ; use pipe (let ((proc (start-process "pbcopy" "*Messages*" "pbcopy"))) (process-send-string proc text) (process-send-eof proc))))) (setq interprogram-cut-function 'paste-to-osx)))
MacOS X の X11.app に付属のツール pbcopy といふのを呼び出している。
X11 の環境設定
ちなみに、ぼくは X11 の環境設定をスクリーン・ショットの通りにしている。
「ペーストボードが変更されたときに CLIPBOARD をアップデート」にチェックを入れていると、何かと不具合が多いというのが Snow Leopard での感想。バグなのかしらん?
実は最近は emacs あんまり使ってない、というか emacs 自体あんまり分からないし、使えるかどうかは未確認なのですが、
ReplyDeleteset-clipboard-coding-system
なんてものがあるようです。X11 用にビルドしたものには入ってないのかもしれませんけど、Leopard の /usr/bin/emacs (22.1.1) には入ってますね。
rok さん、こんにちは。情報ありがとうございます。
ReplyDeleteさて、関数 set-clipboard-coding-system なのですが、私も期待をこめてこの関数を使ってみたのですが、効果はありませんでした。使ってみたのは、X11 用にコンパイルした Emacs です。Leopard 版なら、もしかして。ということはあるかもしれません (面倒でまだ試していない ^^;)
あぁ、そうですか。残念。
ReplyDeleteいつ書いたのか記憶にないのですが、私の ~/.emacs に (set-clipboard-coding-system 'sjis-mac) なんてものがありまして、もしかしたらと思ったのですが。
そうか。shift_jis ですか。
ReplyDeleteutf-8 の方ばかり試していたので、失敗続きだったようです。
最近の X11, Mac, Emacs は Shift_JIS と UTF-8 が混在していて混乱気味。コピペも文字化けしたりしなかったりで、よく分かっていません。とりあえず、ソースからコンパイルした 22.1.50 は set-clipboard-coding-system なしでも何とかなっていますが、最新の Emacs 23 はどうなることやら。
混乱が収拾したら、また別エントリー書くかもです。
Thanks!