Citation

メールの返信時に相手の文章を引用したいですね. そのためのツールを2つ. 基本的にはmu-citeでいいのですが, 個人的にはmu-citeのfillが嫌いなのでそ こだけxciteを利用しています.

mu-cite

  1. まずはここからソースをとってきます.
  2. バイトコンパイルした上で適切なディレクトリにインストール.
    make install
    
  3. ここにあるような設定をします. 設定内容は以下で解説:

まずはautoloadします

以下はmu-cite.elのcommentaryから. 要するに標準的な設定というわけですね.
(autoload 'mu-cite-original "mu-cite" nil t)
;; for all but message-mode
(add-hook 'mail-citation-hook (function mu-cite-original))
;; for message-mode only
(setq message-cite-function (function mu-cite-original))

引用であることを識別するための正規表現

(setq cited-prefix-regexp "^[^ \t>]*[>]*[ \t##]*[:||]?[ \t##]?")

引用時のヘッダを設定

ここは好みで. 私のはこんなのです.
(setq mu-cite-top-format
      '("----------------------------------------------------------------------\n"
	date "頃\n"
	subject "にて\n"
	from "(" petname ") さんはつぎのようにかきました\n"
	"----------------------------------------------------------------------\n\n"))

引用符から「さん」を削る

とはいえ, これが機能することはあまりないですかね.
;; 引用符から「さん」を削る
(add-hook 'mu-cite-pre-cite-hook
          '(lambda ()
             (save-excursion
               (goto-char (point-min))
               (replace-regexp "^\\(FAF\\(さん\\|氏\\)\\)>" "FAF>"))))

引用にpetnameを使う

アドレス帳にあるpetnameを使って引用するための設定.
;; 引用にPetnameを使う
(require 'mu-bbdb)
(autoload 'wl-address-get-petname "wl-address")
(setq mu-cite-default-methods-alist
      (append mu-cite-default-methods-alist
              (list (cons 'petname
                          (function
                           (lambda ()
                             (if (functionp
                                  'wl-address-get-petname)
                                (wl-address-get-petname
                                  (mu-cite-get-value 'from))
                               (mu-cite-get-value
                                'full-name))))))))

bbdbとの連携

; mu-bbdb
(add-hook 'mu-cite-load-hook
	  (lambda () (require 'mu-bbdb)))
; bbdbデータベースを使う
(setq mu-cite-top-format 
      '(in-id ">>>>> “" bbdb-prefix-register "” = " from " wrote:\n"))
(setq mu-cite-prefix-format '(bbdb-prefix-register-verbose "> "))

xcite

  1. このページここからソースをとってきます.
  2. 適切な場所(私は/usr/local/site-lisp/)に置きます.
  3. ここにあるような設定をします. 詳細は以下で解説:

まずは読み込み

requireしておかないと, 初回はM-x xciteしなくてはなりません.
(require 'xcite)
(autoload 'xcite "xcite" "Exciting cite" t)
(autoload 'xcite-yank-cur-msg "xcite" "Exciting cite" t)
(autoload 'xcite-indent-citation "xcite")

キーバインド

C-c dでxciteなfillが使えます. このために導入したと言っても過言では...
(global-set-key "\C-c\C-x" 'xcite)
(global-set-key "\C-c\C-y" 'xcite-yank-cur-msg)
(global-set-key "\C-cd" 'xcite-fill)

Wanderlustとの連携

(setq wl-draft-cite-func 'xcite-indent-citation)

参考