Mew on XEmacs

作成中

5. Contributions (2), mew-nmz.el

この節で書かれている内容は 白井さん <shirai@mew.org> によって書かれた contrib/mew-nmz.el のマニュアルである 00readme-namazu.jis の大部分を, そのままHTMLに変換して, 書き写したものです.

5.1. はじめに

mew-nmz.el は Mew からの検索を Namazu [21] を用いて高速化するための emacs lisp です. Mew の扱う MH [22] 形式の folder と Namazu の INDEX を "一対一" に生成し,folder 単位でINDEX を指定することによって,高速な検索と木目細やかな制御を両立しています.

5.2. 準備

5.2.1. 必要 Version

以下に示す version のソフトウェア群が必要です.

5.2.2. 設定

5.2.1. に示したソフトウェアが単体で動作したら 'mew-nmz.el' をインストールします.せっかくなので byte-compile しましょう.

その後,~/.emacs に

(eval-after-load "mew" '(require 'mew-nmz))

を書き,各種変数を設定した後,再立ち上げしましょう.

5.3. 変数

以下の変数をお使いの環境,趣味に合わせて下さい.なお,変数名の右(下)に示すのは default 値です.

5.4. ユーザインターフェース関数

mew-nmz.el の使い方です.関数名の右側は標準の key bind になります.

5.4.1. INDEX の作成,支援関数

5.4.2. 検索,表示関数

5.4.3. virtual mode のおまけ

5.5. IM Script (Namazu 関連)

5.5.1. ~/.im/Config

もし,Namazu 1.9.x 以降(これを Ver.2 と呼ぶ)をお使いのときは,~/.im/Config に

NamazuV2=on

と書いて下さい.Perl による Version 自動判定は失敗しました.^^;;;

5.5.2. imls

--namazu --grep='pattern' --src=NamazuIndex,NamazuIndex... msgs

という形式で,imls を起動すると,Virtual folder 形式で該当するmessage を出力します.しかし, 現在の mew-nmz.el からは 'imls --namazu' は使用していません.

5.5.3. immknmz

mew-nmz 形式の Index を作成します.option として,

--gcnmz=<on|off> (-g)(off) Use gcnmz after mknmz (Garbage Collection for Namazu index).
--verbose=<on|off> (-v)(off) With verbose messages.
--timestamp=<on|off>(-t)(off) Use checking time stamp.
--help=<on|off> (-h)(on) Show this message.

があります.timestamp option を使うときは,mew-nmz-mknmz-use-timestampを 't' にして下さい.~/.im/Config に

TimeStamp=on

と書くことにより,default 設定を指定することもできます.また,im-141 の付属の immknmz を [Mew-dist 13633] 付属のものに置き換えることにより,

--fld=<folder>,<folder>...(-f)() Target folders (default: 'all folders').

というオプションが増えます.このオプションを使えば任意の folderのみの INDEX を作成することができます.

immknmz はそのほかにもソースに埋め込まれたオプションがあるので, 必要に応じて適時ソースをいじってください.

5.6. INDEX の作成支援関数

5.6.1 inc (mew-summary-get)

'i' した後に勝手に mknmz して +inbox の INDEX を最新に保ちます.

(add-hook 'mew-summary-inc-sentinel-hook
	  (lambda ()
	    (if (and (boundp 'cnt) (integerp cnt) (> cnt 0))
		(mew-nmz-mknmz (mew-inbox-folder) nil nil 'nocheck))))

5.6.2 immknmz と Mew の関係

immknmz では old type の Mew が使っていた ~/Mail/.folders というファイルをそのまま使っています.そのため,新規に folder を作成しても immknzm にはその内容を知らせることができません.以下の advice を使うと Mew を終了するときに ~/Mail/.folder を最新の状態に保つことができます.

(defadvice mew-folder-clean-up (before folder-list-to-file activate)
  (let ((lst mew-folder-list)
	(fldsfile (expand-file-name ".folders" mew-mail-path)))
    (if lst
	(with-temp-buffer
	  (while lst
	    (if (string-match "^\\+[^+]" (car lst));; only local folder
		(if (string-match "\\(^.+\\)/$" (car lst))
		    (insert (substring (car lst) 0 (match-end 1)) "\n")
		  (insert (car lst) "\n")))
	    (setq lst (cdr lst)))
	  (write-region (point-min) (point-max) fldsfile)))))

目次: http://home.hiroshima-u.ac.jp/fukae/mew/mew1.html


Last modified: Sun Nov 25 20:33:41 JST 2001
Created with XEmacs! Valid HTML 4.01! Valid CSS!