SSブログ

mgを使用したMewの全文検索 [Linux]

メッセージの全文検索は、Mew の機能を使用せず、メッセージファイルを直接検索することで対応してきた。しかし、少々面倒に感じてきたため、Mew の全文検索のための環境を整備した。
実施手順は、以下の通りである。

0. 制限事項


(1) カレントフォルダのみを検索対象とする。

(2) Mew 6.3 以降を対象とする。


下記の環境において、動作確認を行った。
・Mew 6.3 on CentOS 6.x, Mew 6.4 on Debian 7, Mew 6.6 on Debian 8

(補足)
Mew 5.2 では、想定通りの結果とはならなかった。


(3) Perl、nkf がインストールされていること。


1. mg (multi-line grep) のインストール


(1) ダウンロード


下記 URL から mg-2.26 をダウンロードする。
・ftp://ftp.sra.co.jp/pub/lang/perl/scripts/utashiro-scripts/


(2) カスタマイズ


(a) 1 行目を変更する。

(変更前) #!/usr/local/bin/perl
(変更後) #!/usr/bin/perl


(b) 354 行目をコメント化する。

コメント化しない場合、下記のワーニングが出力される。
$* is no longer supported at /tmp/mg line 354.


(3) インストール


/usr/local/bin 等に mg というファイル名でインストールする。
また、実行できるようにパーミションを設定する。


2. Base64 エンコードされたメッセージへの対応


テキストメッセージと Base64 メッセージを同時に検索することはできない。
よって、nkf のオプションを変更する関数を作成し、これに対応する。
手順は、下記の通りである。


(1) mew-search-util.el のインストール


mew-search-util.el を load-path に設定されたディレクトリにコピーする。
(mew-search-util.el のソースコードは、備考を参照。)


(2) ~/.mew.el への設定の追加

;;(setq mew-search-mg-locale "ja_JP.UTF-8")    ;; ja_JP.UTF-8 の場合に設定
(setq mew-prog-grep "mg")
(require 'mew-search-util)


ja_JP.UTF-8 で機能しない場合には、コメント化する(ja_JP.eucJP が使用される)。


3. 使用方法


(1) 検索対象のフォルダに移動する。

(2) 必要に応じて、mg のフィルタコマンド(nkf) のオプションを変更する。

M-x mew-set-mg-opts


または M-? を押下する。


(3) 全文検索を実行する。


・/ または ? を押下する。
・検索条件を入力する。

詳細は、Mew のマニュアルを参照。


[備考]


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。