『tm-gnus 説明書』 by. 守岡 知彦 1994年7月27日 * Install *.el を Emacs の変数 load-path で指定された directory に copy します。 tm-gnus は、tiny-mime (MIME header encoder/decoder), tm-body (MIME body player), tm-misc (tm- 共通 module), tm-gnus の各 module から なります。各 module 毎の install 法は以下の通りです。 ** tiny-mime の install tiny-mime.el を Emacs の変数 load-path で指定された directory に copy します。 ** tm-body の install tm-body.el, tl-list.el, tl-header.el を Emacs の変数 load-path で指 定された directory に copy します。 ** tm-misc の install tm-misc.el, tl-hook.el を Emacs の変数 load-path で指定された directory に copy します。 ** tm-gnus の install tm-gnus.el と tm-gnus3.el を Emacs の変数 load-path で指定された directory に copy します。tm-gnus3.el を byte-compile する場合は、GNUS 3 が load された状態で行なって下さい。 * 設定 .emacs に以下のものを入れます。 [[E ---------------------------------------------------------------------- (if (not (fboundp 'add-hook)) (require 'tl-hook) ) (let ((le (function (lambda () (require 'tm-gnus) ))) ) (if (boundp 'MULE) (progn (add-hook 'gnus-Group-mode-hook (function gnusutil-initialize)) (add-hook 'gnus-group-mode-hook (function gnusutil-initialize)) (autoload 'gnusutil-initialize "gnusutil") (autoload 'gnusutil-add-group "gnusutil") (add-hook 'gnusutil-initialize-hook le) ) (progn (add-hook 'gnus-Startup-hook le) (add-hook 'gnus-startup-hook le) ))) ---------------------------------------------------------------------- ]]E Mule における上記の設定は、gnusutil を併用する場合のものですが、 gnusutil を併用しない場合は (require 'tm-gnus) だけで結構です。 * 使い方 -------------------------------------------------------------------- | key | 機能 | ==================================================================== | M-t |message header を decode に関する toggle switch | -------------------------------------------------------------------- | v |message body を MIME decode して、再生する (play mode) | | e |message body を MIME decode して、file に落す (extract mode)| |C-c p|message body を MIME decode して、印刷する (print mode) | -------------------------------------------------------------------- message body の MIME decode において、実際に各動作が行なわれるかどう かは、各 Content-Type に対応する tm-body の mthod に依存します。 * 各種設定 ** metamail を使う方法 tm-mh-e は MIME body の decode に tm-body を使いますが、metamail を 使うように設定することも可能です。但し、metamail と metamail.el が必要 です。 この場合 .emacs に以下のものを入れて下さい。 [[E ---------------------------------------------------------------------- (autoload 'metamail-buffer "metamail" nil t) (setq mime/body-decoding-method (function metamail-buffer)) ---------------------------------------------------------------------- ]]E metamail を使う設定の場合、`v', `e', `C-c p' に対応する動作は metamail にかけるだけになり、同一の動作になります。また、動作は逐次的 になります。 ** article を save する時 decoding しない article を save する時、保存される message はその時表示されているよ うに、その時の MIME header decoding mode に応じて save されます。 しかし、article を save する時、常に、MIME header decoding を行なわ ない、生の message で保存したい場合は (tm-gnus/set-mime-header-decoding-mode nil) を行なって、MIME header decoding を行なわない mode にして、article save 関数を実行するように設 定して下さい。 Save の実行後、MIME header decoding mode を前の状態に戻したい場合は、 以下のように、一時変数に MIME header decoding mode を保存しておけば OK です。 [[E (let ((mm mime/header-decoding-mode)) (tm-gnus/set-mime-header-decoding-mode nil) (article save 関数) (tm-gnus/set-mime-header-decoding-mode mm) ) ]]E 以下に、mh-e の folder に save する場合の例を示します。 [[E ---------------------------------------------------------------------- (add-hook 'gnus-Startup-hook (function (lambda () (setq gnus-default-article-saver (function (lambda () (interactive) (let ((mm mime/header-decoding-mode)) (tm-gnus/set-mime-header-decoding-mode nil) (gnus-Subject-save-in-folder) (tm-gnus/set-mime-header-decoding-mode mm) ))))))) (add-hook 'gnus-startup-hook (function (lambda () (setq gnus-default-article-saver (function (lambda () (interactive) (let ((mm mime/header-decoding-mode)) (tm-gnus/set-mime-header-decoding-mode nil) (gnus-summary-save-in-folder) (tm-gnus/set-mime-header-decoding-mode mm) ))))))) ---------------------------------------------------------------------- ]]E ** reply する時 Subject の encoding 法を reply 元に合わせる Reply する時、reply 元の Subject に ASCII 以外の文字集合の入っている 場合、reply 元が MIME encode されていたら encode し、そうでなかったら 生で入れたい場合は、次のように設定します。 [[E ---------------------------------------------------------------------- (add-hook 'gnus-article-prepare-hook (function (lambda () (if (mime/exist-encoded-word-in-subject) (setq mime/no-encoding-header-fields '("X-Nsubject")) (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject")) )))) ---------------------------------------------------------------------- ]]E