Windows 上の Emacs のクリップボードの文字コード設定

| コメント(2) | トラックバック(0)

私は以前からテキストエディタとしてEmacsを使っています。元々はだいぶ前にUnixワークステーションで使い始めたものですが、Windowsに移植されたMeadowも使いましたし、最近ではEmacsの公式の配布物にWindows用バイナリも入っているのでそれも使っています。

WindowsでEmacsを使う上でよく分からない点のひとつがクリップボードの設定でした。他のWindowsアプリケーションとコピー・アンド・ペーストするのに、JIS X 0208にある文字を使っている分にはいいのですが、それ以外の文字、例えばJIS X 0213で追加された記号や漢字を使おうとするとうまくいかない。私はテキストメモに白抜き矢印(⇨)や蛇の目(◉)やチェックマーク(✓)などを多用するので(SKKで簡単に入力できます)、こうしたものがコピーできないのはつらい。

私の設定ファイル(.emacs)にはいつの頃からか set-clipboard-coding-system でクリップボードの文字コードを設定するように記述されています。昔から継ぎ足しながら受け継いできた秘伝の .emacs なのでいつ追加した記述かは分かりません。この指定が効いているようではあるのですが、utf-8 にしても shift_jisx0213 にしてもJIS X 0208外の文字は駄目なようで、ずっと放置していました(cp932は論外)。

どうやらこれは utf-16le にするといいらしいと最近分かりました。参考になるのはStack Overflowの記事: Which coding system should I use in Emacs? (真ん中ぐらいに小さな字でキモが書かれている)

この記事によるとutf-16leはデフォルトらしくて、つまり実は何も設定しなければよかったのかもしれません。

Windows 8.1を使って自分で試したところでは、utf-16leに設定したらJIS X 0208外の文字でも意図どおりにコピーできました。多分問題ないと思います。

(utf-16leにすればいいというのは最近のEmacsを前提とした話で、昔のMule-UCSを使うやつだとどうかはわかりません。でもそれはもういいか...)

トラックバック(0)

トラックバックURL: http://yanok.net/yanok/mt-tb.cgi/580

コメント(2)

> この記事によるとutf-16leはデフォルトらしくて、つまり実は何も設定しなければよかったのかもしれません。

実際に設定を外した (コメントアウトした) 方もおられたようです。

https://forums.ubuntulinux.jp/viewtopic.php?id=183
> ただ違うのが (set-clipboard-coding-system 'utf-8) というところです。
> クリップボードがらみの問題ということで、この一行をコメントアウトしてみたところ、日本語のコピペが化けないようになりました。

推測すると、UTF16-LEが前提のAPIを呼び出しているということでしょうか。であれば設定自体が不要のような気がしますが、歴史的経緯があるのでしょうか……

お知らせありがとうございます。やはり明示的に設定しなくてもうまくいくんですね。
utf-16leかどうかは、実行環境のOSやあるいはEmacsのバージョンにもよるのではないかと思います。昔書いたメモを引っ張り出してみたら、Windows 98とMeadowとMule-UCSの組み合わせではshift_jisx0213に設定したらうまくいったようです。

コメントする

最近のブログ記事

Jアラート訓練メールで文字化けとのニュース
一昨日のことですが、中国・四国地方から文…
任俠の第3水準漢字
ユーモラス、と言っていいのか分かりません…
ふるさと納税で奥尻島のワインを頂きました
奥尻島は北海道の南西の方に浮かぶ島です。…
電子マネーの優先順位を考える
このブログを電子マネーとクレジットカード…
電子マネーiDの隠れたお得
iDというのはSuicaやEdyのような…

広告