2012-12-30

Emacs 24.2 で Emacs の外からのコピペが出来なくなっていたので直した

今年の 9 月に Mac で Emacs をコンパイルした。バージョンは 24.2。

Emacs 24.2 にしてから、Emacs の外へのコピペ・外からのコピペが出来なくなった。例えば、ブラウザーで適当な文章を「コピー」して、Emacs で C-y しても kill-ring is empty とエラーになる。文章書きが Emacs の中だけで閉じているなら不便はないけれど、ブログを書いたりしているととても不便。

色々、試してみた結果、次の一行を .emacs に追加すれば良いことが分かった。

(setq x-select-enable-primary t)

この変数の説明を読むと、

This variable was introduced, or its default value was changed, in version 24.1 of Emacs.

(訳) この変数は Emacs 24.1 で導入もしくはデフォールト値が変更されました

といことなので、Emacs 24.1 でも同じ問題は起こるはず。ぼくは Emacs 24.1 をスキップして 24.2 にバージョン・アップしたから知らなかった。

あとがき

ぼくはもう Windows を使っていないけれども、Windows 上の Emacs (NTEmacs) でも同じ問題が起きる様なら、上記対処法が有効かもしれない。

3 comments:

  1. 一応、元の設定のままでも、マウスの中ボタンクリックで paste は可能ではあります。

    emacs 24 の info の Killing→Cut & Paste→Clipboard によると、emacs 24 以前の挙動と同じにするには x-select-enable-primary を t にすることに加えて、x-select-enable-clipboard を nil に、mouse-drag-copy-region を t にせよ、とも書いてありますね(もっとも、これらについては不便を感じない場合はわざわざ変更するには及ばないのでしょうけど)。

    それから、x-select-enable-clipboard の doc string によれば、windows だと primary selection というものはなくて、clipboard しかないということなので、特に変数をいじったりする必要はないようです(実際、普段使ってる NTEmacs では、emacs 外からの paste はふつーに C-y でできています)。

    ReplyDelete
    Replies
    1. 井汲さん、情報ありがとうございます。
      最近、最新の Emacs についていけていないです。やばいです。頑張って勉強しなくっちゃ。

      Delete
    2. mac 初心者なので助かりました。

      Delete