2016-03-31

Gnus: Always `Message-ID' in Article buffer

メールをコピペするとき、エンジニア的には Message-ID を含めておきたい。Gnus の標準設定は Message-ID 非表示なので、今までは t キー(gnus-summary-toggle-header)を押して都度 Message-ID をコピペしていたが、いい加減それが面倒になった。(そりゃそうだ)

gnus-visible-headers なる変数は直ぐに見つかるので簡単と思いきや、この変数は、

  • 「正規表現」「正規表現のリスト」のどちらでも設定可能で、前者の初期値を持つ。
  • gnus-art ロード時に定義される。(それまでは未定義)

これらの要因により、きちんと設定するのは思ったより面倒。私がやりたいのは、gnus-visible-headers の初期値に設定を追加すること。将来のバージョンで初期値が変わることも考慮したい。

;; visible headers in article buffer
(setq my-gnus-visible-headers '("^Message-ID:"))
(eval-after-load "gnus-art"
  '(progn
     (when (stringp gnus-visible-headers)
       (setq gnus-visible-headers
	     (split-string gnus-visible-headers "\\\\|")))
     (dolist (header my-gnus-visible-headers)
       (add-to-list 'gnus-visible-headers header))))

ググると、他の人は gnus-visible-headers に concat するパターンが多いようだ。しかしそれだと、二回目以降の Gnus 起動で設定が重複するのが気持ち悪いし、個人的には重複チェックを add-to-list に任せられるリストの方が好み。しかし、やりたいことに対して設定が冗長になった感は否めない。