Firefox アドオン「Make Link」と Emacs

ブログを書いていると、他ページの記事を引用したり、リンクを設定したページタイトルを挿入したりする機会がとても多くなる。その都度ページタイトルを書き写したり、URLをコピー&ペーストしたり、リンクを設定するためのHTMLタグを入力したりするのはかなり面倒だ。 この手間をはぶいてくれる便利なアドオンを紹介しよう。「Make Link」は、右クリックメニューを使って、WebページのタイトルやURLなどをクリップボードにコピーするFirefox拡張機能。コピーした内容は、プレーンテキストやリンクテキスト、Wiki記法などの書式で任意の場所に貼り付けることができる。初期設定では4つの書式が用意されており、さらにオリジナルの書式を登録することも可能となっている。
【レビュー】ブロガー必見のFirefoxアドオン - 「Make Link」 (1) 「Make Link」の概要とインストール | パソコン | マイコミジャーナル

カスタマイズできるのがいい。はてなの引用ならこんな感じ。

>>
%text%
<cite><a href="%url%">%title%</a></cite>
<<

上の引用はこの設定を使ったもの。選択したテキストを引用元リンク付きの引用記法でクリップボードに入れる。

Emacs の設定

ただ、Linux環境(ていうか X 環境)で Make Link から Emacs に張り付けたい場合はちょっと問題がある。C-y とかしても選択したテキストしか貼り付けられない。しかし、メニューバーもしくはツールバーで paste 操作を行うと Make Link が生成したテキストが貼り付けられる。もしくは M-x x-clipboad-yank。

これは X のクリップボードには二系統(本当は3系統)あって、扱いが違うせい。選択したテキストが自動的に入り、マウスの真ん中ボタンでそれを取り出せる PRIMARY と、カット(or コピー)操作で選択テキストが入り、ペースト操作でそれを取り出せる CLIPBOARD の二系統。

Emacs (バージョン21以降)では、通常のキーボード操作では PRIMARY を使い、メニューバーやツールバーのコマンドによる操作では CLIPBOARD を使うことになっている。M-w や C-w で kill-ring に保存したテキストは PRIMARY に入り、C-y で貼り付けるテキストは PRIMARY から取り出す。CLIPBOARD に一本化したければ、

;; CLIPBOARD を有効に。
(setq x-select-enable-clipboard t)

とかするといいかも。試した感じではいけてるっぽいけど副作用あるかも? あるいは普段使うキー操作だけこんなふうに設定。

(global-set-key "\C-y" 'clipboard-yank)
(global-set-key "\M-w" 'clipboard-kill-ring-save)
(global-set-key "\C-w" 'clipboard-kill-region)

ちなみに clipboard-yank と x-clipboard-yank の違いは、前者は kill-ring にテキストが追加されるとそっちを取り出すのに対し、後者は CLIPBOARD に値があるとそれを kill-ring に追加してから取り出すので必ず CLIPBOARD の内容が取り出せるところ。