[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
FIXME: Gnus の検索機能に関する短い概要を追加。nnir, nnmairix, contrib/gnus-namazu の簡潔な比較もまた良し。
この章は、ある語に合致する記事をグループおよびサーバーで検索してそれらの 記事を取得するための道具について説明します。Gnus はそれらの合致パターン を概略バッファーの記事たちを通して検索する、より単純な機構を提供します。 See 節 3.27.2 記事を探す.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
この項は nnir
を使って Gnus の記事を検索するやり方を説明します。
8.1.1 nnir とは? nnir
は何をするか?8.1.2 基本的な使い方 8.1.3 nnir の設定方法 nnir
の設定方法
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
nnir
はメールとニュースの倉庫を検索するための数ある道具へ の Gnus のインターフェースです。異なるバックエン ド (例えば nnimap
と nntp
) は異なる道具 (nnir
用語 で言うところの エンジン) で動作しますが、すべて同じ基本的な検索イ ンターフェースを使います。
nnimap
および gmane
検索エンジンは設定無しで動くはずです。 他のエンジンはローカルな索引を必要とします。それは Gnus の外で作り、かつ 維持しなければなりません。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
グループバッファーで G G をタイプすると、 gnus-group-make-nnir-group
を呼ぶことによって現在行のグループを検 索します。これは検索語の入力を促して、それに合致する記事を含む一時的な nnir
グループを作り、それらの記事がある概略バッファーを表示します。 そうしたら、後はいつものコマンドを使って記事を読んだり、移動したり、削除 したりすれば良いのです。
このように作られた nnir
グループは一時的 (ephemeral
) なグ ループなので、既読、移動および削除は別として、いくつかの変更は永続しませ ん。つまり元の記事に手を加えることはできません。しかし代わりの手がありま す。A W (gnus-warp-to-article
) で、現在行の記事の元の記事 に ワープ できるのです。さらに良いのは概略バッファー で A T にディフォルトで割り当てられている関 数 gnus-summary-refer-thread
で、それはその魔法を行なう前、最初に 元のグループにワープして、そのスレッドにあるすべての記事を含めます。そこ から記事を読み、移動し、また削除できるだけでなく、それらをコピーしたり、 印を変更したり、その他何でもできます。ああ、頭がおかしくなりそう (原 典: "Go nuts")。
現在行のグループだけでなく、他のグループも検索したいですって? 問題あり ません。単に検索したいグループにプロセス印を付けてください。さらにもっ と? それならトピックの見出しにカーソルを置いて nnor 検索を実行すれば、 その見出しの下のすべてのグループを検索してくれるでしょう。
まだ足りないんですか? よろしい、サーバーバッファー で gnus-group-make-nnir-group
(現在は G に割り当てられてい る) を使えば、現在行のサーバーにあるすべてのグループを検索できます。多す ぎますか? 検索する際に spam グループのようなグループを無視したいという ことですね? であれば nnir-ignored-newsgroups
をカスタマイズして ください。
さらにもう一つ。個々の検索エンジンは特別な検索機能を持っているかもしれま せん。それらの特別な検索機能は、gnus-group-make-nnir-group
に接頭 引数を与えることによって利用できます。もし複数のグループを異なる検索エン ジンで検索するのであれば、それぞれのエンジン毎に別れて特別な検索機能を使 うかどうかを尋ねられるでしょう。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
nnir を設定するには、いくらか準備作業が必要です。まず、使おうと思ってい る検索エンジンを設定しましょう。それらのうちのいくつか、例え ば imap
と gmane
については特別な設定は要りません。他の、 例えば namazu
と swish
については後述の設定が必要です。次 に、サーバーまたはバックエンドと検索エンジンを関連付ける必要があります。
もし単に nnimap
サーバーを検索するために imap
エンジンを、 そして gmane
を検索するために gmane
エンジンを使いたいので あれば、何もする必要はありません。しかしながら検索語の書き方の詳細説明は、 とにかく読む必要があるでしょう。
8.1.3.1 エンジンとの関連付け 8.1.3.2 Imap エンジン 8.1.3.3 Gmane エンジン 8.1.3.4 Swish++ エンジン 8.1.3.5 Swish-e エンジン 8.1.3.6 Namazu エンジン 8.1.3.7 Hyrex エンジン 8.1.3.8 カスタマイズ
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
グループを検索するときに nnir
はどの検索エンジンを使うかを知って いる必要があります。サーバー変数 nnir-search-engine
をエンジンの 名前に設定することによって、所定のサーバーが特定のエンジンを使うように設 定してください。例えば home
という名前のサーバーを検索するため に namazu
エンジンを使うには以下のようにします:
(setq gnus-secondary-select-methods '((nnml "home" (nnimap-address "localhost") (nnir-search-engine namazu)))) |
あるいは、一つのバックエンドがまかなうすべてのサーバーのために、特定の一 つのエンジンを使う必要があるかもしれません。例えば nnimap
バック エンドを使うすべてのサーバーで imap
エンジンを使いたい場合です。 その場合は変数 nnir-method-default-engines
をカスタマイズしてくだ さい。これは (backend . engine)
形式のペアの連想リストです。この 変数はディフォルトでは nnimap
バックエンドを使うすべてのサーバー で imap
エンジンを、そして nntp
サーバーに は gmane
エンジンを使うように設定されています。(gmane
検索 エンジンは gmane ではない nntp
サーバーを実際に検索しようとしませ んから、ご心配なく。) でも nnimap
バックエンドを使うすべてのサー バーのために namazu
を使いたかったのであれば、以下のように変更す ることができます:
'((nnimap . namazu) (nntp . gmane)) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
imap
エンジンは設定不要です。
imap
エンジンを使う検索には、簡単な検索語の書き方があります。検索 は常に大文字と小文字を区別せず、以下の機能を持っています (Google 検索の 検索語の書き方に倣っています)。
ディフォルトではメッセージ全体が検索されます。接頭引数を使うことによって、 検索をメッセージの指定する部分だけに制限することができ、そうすると検索語 が入力された後で、メッセージの部分を (補完付きで) 尋ねられます。選択肢に は "Whole message" (メッセージ全体)、"Subject"、"From"、およ び "To" があります。それ以外はどんな入力もヘッダー名であると解釈されま す。例えばこの問いに Message-ID とタイプして応えると、検索 は Message-ID ヘッダーだけに制限されます。
最終的に "Imap" を選ぶと、それは生の IMAP 検索と解釈されます。 そのような検索のフォーマットは RFC3501 で見つかるはずです。
もしディフォルトのメッセージ全体検索が好みでないのであれ ば nnir-imap-default-search-key
をカスタマイズしてください。ディ フォルトで IMAP 検索を使いたい場合は、こうしてください:
(setq nnir-imap-default-search-key "Imap") |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
gmane
エンジンは設定不要です。
gmane
エンジンを使う検索には、簡単な検索語の書き方があります。
接頭引数を使うことによって、検索を指定した著者による記事に限定することが できます。そうすると検索語が入力された後で、合致する著者名 (または名前の 一部) が尋ねられます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
FIXME: ここで何かもっと言う。
Swish++ の資料は sourceforge の swish++ のページで見つかるでしょ う: http://swishplusplus.sourceforge.net
nnir-swish++-program
search
です。
nnir-swish++-additional-switches
nil
です。
nnir-swish++-remove-prefix
$HOME/Mail
です。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
FIXME: ここで何かもっと言う。
Swish-e の資料は swish-e ホームページで見つかるでしょ う: http://swish-e.org
nnir-swish-e-program
swish-e
です。
nnir-swish-e-additional-switches
nil
です。
nnir-swish-e-remove-prefix
$HOME/Mail
です。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Namazu を使うには索引ファイルを作って維持する必要があります。すべての索 引ファイルは一つのディレクトリーに置いてあるはずで、その所在 を nnir-namazu-index-directory
変数を設定することによって nnir に 伝えなければなりません。
正しく働かせるには nnir-namazu-remove-prefix
変数も正しくなければ なりません。これは、正しいグループ名を得るために Namazu が返すそれぞれの ファイル名から取り除く接頭語です (`.' は `/' に置き代わりますが)。
例えば Namazu が `/home/john/Mail/mail/misc/42' のようなファイル名 を返すとしましょう。この例では次の設定を使ってください:
(setq nnir-namazu-remove-prefix "/home/john/Mail/") |
最後のスラッシュに注意してください。ディレクトリーからこの接頭語を取り除 くと `mail/misc/42' になります。nnir
は正しいグループ 名 `mail.misc' を導くために `/42' を取り除い て `/' を `.' で置き換えるべきであることは承知しています。
他のオプションは nnir-namazu-additional-switches
を設定することに よって namazu 検索コマンドに渡されます。とりわけ、出力の形式を変更してし まうどんなオプションも namazu に渡さないことが重要です。使っても良いオプ ションは `--sort'、`--ascending'、`--early' および `--late' です。さらな る有効なオプションについては Namazu の説明書を参照してください。
メールは `mknmz' プログラムで最初に索引付けされなければなりません。設定 ファイルを作るためには namazu の説明書を読んでください。ここに例がありま す:
package conf; # この行は消さないこと! # 索引付けされないパス。`^' または `$' アンカーを使わないこと。 $EXCLUDE_PATH = "spam|sent"; # 検索すべきヘッダー・フィールド。大文字/小文字の区別は無い。 $REMAIN_HEADER = "from|date|message-id|subject"; # 検索できるフィールド。大文字/小文字の区別は無い。 $SEARCH_FIELD = "from|date|message-id|subject"; # 最も長い語の長さ。 $WORD_LENG_MAX = 128; # 最も長いフィールドの長さ。 $MAX_FIELD_LENGTH = 256; |
例えばメールが `~/Mail/mail/'、`~/Mail/lists/' およ び `~/Mail/archive/' ディレクトリーに格納されるのであれば、それらに 索引付けをするためには nnir-namazu-index-directory
に設定されてい る索引ディレクトリーに行って、以下のコマンドを発行します。
mknmz --mailnews ~/Mail/archive/ ~/Mail/mail/ ~/Mail/lists/ |
最大の検索効率を得るためには、このコマンドを定期的に (例えば 4時間毎 に) 実行する cron ジョブを走らせる必要があるでしょう。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
nnir-method-default-engines
(nnimap . imap) (nntp . gmane) |
nnir-ignored-newsgroups
nnir-summary-line-format
gnus-summary-line-format
のすべての書法仕様指示子とともに nnir 概 略バッファー独自の以下の三つの指示子を使うことができます:
%Z 検索結果のスコアの値 (整数) %G 記事があった元の完全なグループ名 (文字列) %g 記事があった元の短縮形のグループ名 (文字列) |
もし nil
だったら (それがディフォルト)、 gnus-summary-line-format
を使います。
nnir-retrieve-headers-override-function
nil
でなければ、Gnus に組み込まれている関数を使わずに記事の ヘッダーを取得するための関数。この関数は引数として記事のリストとグループ を取り、取得したヘッダーで `nntp-server-buffer' を満たします。そして、取 得したヘッダーの形式を示すために nov
または headers
を返さ なければなりません。ヘッダーの取得に失敗したときは nil
を返します。
もしこの変数が nil
だったら、または用意した関数が検索結果とし て nil
を返したら、代わりに gnus-retrieve-headers
が呼ばれ ます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
(訳注: Mairix は ASCII 文字しかサポートしません。)
この項は、メールに索引を付けて Gnus 内で検索するために、どうやっ て mairix とバックエンド nnmairix
を設定するかを説明します。さら に mairix 検索に結び付けられて自動的に更新される恒久的 な "賢い" (smart な) グループを作ることができます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Mairix はローカルに格納されたメールに索引を付けたり単語を検索するための 道具です。書いたのは Richard Curnow で GPL でライセンスされます。 Mairix は最もポピュラーな GNU/Linux の配布に付属していますが、 Windows (と cygwin)、Mac OS X および Solaris のもとでも動作します。ホー ムページは http://www.rpcurnow.force9.co.uk/mairix/index.html で す。
nnir
バックエンドを介して使うことができる swish++ や namazu のよ うな他の検索ツールほどには mairix は融通がきかないかもしれませんが、それ には信じられないほど速いというすばらしい特長があります。現在のシステムで は 1秒で何千通ものメールのヘッダーと記事のボディーの隅々までを容易に捜す ことができます。検索するために必要なデータベースの構築には 1〜2分かかる かもしれませんが、一度それを完全に行なえば良いのです。それ以後、更新は追 加的 (インクリメンタル) に行なわれることもあって、本当に速いのです。付け 加えておくと、mairix の設定はとてもやさしいです。
しかし最高速で動かすために mairix は Maildir
または MH
の 形式 (これは nnml
バックエンドを含みます) で格納されたメールで使 わなければなりません。もっとも mbox でも動作するのですけれど。Mairix は 実際のメッセージファイルを指し示すシンボリックリンクを「仮想」 の maildir/MH フォルダーに置くことによって検索結果を提示します (mbox を 使っている場合はコピーが作られます)。Mairix はそのような仮想フォルダーに すでに検索結果を提示しているので、あるメール検索の結果を提示する「賢い」 メール・フォルダーを作成するために外部のプログラムとして使用するのに非常 によく適しています。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Mairix はローカルなメールを検索します---つまり mairix はメール・フォルダー を必ず直接にアクセスできなければなりません。もしメールが別のサーバー (例 えば IMAP サーバー) にあって、たまたま shell でアクセスするこ とができるのならば、nnmairix
は例えば ssh を介して mairix を遠隔 で動作させることもできます。
加えて、nnmairix
は Gnus のバックエンド nnml
、 nnmaildir
および nnimap
だけをサポートします。 nnmairix
を使うには、必ずこれらのバックエンドの一つを使わなければ なりません。nnmbox
、nnfolder
または nnmh
のような他 のバックエンドでは動作しないでしょう。
もしどうしても mbox を使わなければならなくて、それで も nnmairix
を使いたいのならば、ローカルな IMAP サーバー を立ち上げることによって nnimap
を介してアクセスすることができま す。これはいくつかの mbox ファイルにアクセスするためにしてはかなり大がか りな作業になるので、もう MH か Maildir に変えてしまいましょう。それで も mbox を使うことに本当に本当に情熱を持っているのなら、Emacs 23 に付属 している `mairix.el' パッケージを研究する必要があるでしょう。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
バックエンド nnmairix
は、ある検索語で mairix に尋ねたりデータベー スを更新させるために Gnus から mairix を呼ぶことを可能にします。概略バッ ファーでメッセージを見ている間、あらかじめ用意されている mairix を呼ぶた めのいくつかのショートカットを使うことができます。例えば現在見ているメッ セージの送信者からのすべてのメールをすばやく探したり、メールが異なったフォ ルダーにあっても、そのメッセージに関連している全体のスレッドを表示するな どです。
さらに、ある mairix 検索に結び付いた恒久的な nnmairix
グループを 作ることができます。この例では、ある送信者から来て、かつ、ある表題行 (ま たは Message-ID に基づく一つの特定のスレッドさえ) を持つメールを含むグルー プを容易に作ることができます。これらのフォルダーで新しいメールをチェック する (例えば g または M-g を押す) と、mairix を呼ぶことによっ てそれら自体が自動的に更新します。
Mairix はすでにグループを作っていて、Gnus でアクセスできるようにそれらの メールへのリンクを用意しているのに、いったいなぜ nnmairix
が必要 なのかと尋ねるかもしれませんね。そうではありませんか? えーと、それは動 くかもしれませんが、だめなことが多いでしょう---問題無しには。最も ありそうなのは、記事数がおかしくなって、しかも時々は Gnus があるはずだと 言い張るメールがすでにキャンセルされていてアクセスできないことを思い知ら されることでしょう。これは、ものごとが Gnus の後ろに隠れて起こっていると き、Gnus は本当は不満に思っているという事実のためです。例え ば IMAP サーバーで mairix を使っているのなら、もう一つの問題は メールバックエンド自体であるかもしれません (mairix が検索グループの内容 を変えたとき、Dovecot は間違った索引ファイルについて私に不平を言いました)。 nnmairix
を使えば、これらの問題は回避されるはずです。
実は nnmairix
はメールバックエンドではありません---それ は mairix が検索結果を格納する「本当の」メールバックエンドと Gnus フロン トエンドの間に位置していて、むしろ実際にはラッパーに似ています。 Mairix フォルダーのために三つの異なるメールバックエンド nnml
、 nnmaildir
または nnimap
の中から選ぶことができます。 nnmairix
は検索結果をこのメールバックエンド の zz_mairix-
という名前のフォルダーに格納するため に mairix バイナリーを呼びますが、それらのフォルダーは Gnus フロントエン ドには名前が
だけになって渡されます。すでにメールを格納し ている既存のメールバックエンドを使うことができますが、あなたの他のメール と並べて新しいメールグループを作る nnmairix
が気持ち悪いのであれ ば、例えば新しい nnmaildir
または nnml
サーバー を mairix 専用に作ることもできます。ただし、それらのサーバーが間違って新 着メールを取り込んでしまわないようにしてくださ い (see 節 8.2.9 nnmairix でさらに知っておく必要があること)。もし nnimap
ととも に IMAP サーバーで mairix をリモートに使いたいのであれば、特別 な事情が生じます---ここでは mairix フォルダーと他のメールが同 じ nnimap
バックエンド上になければなりません。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
まずはメールフォルダーのバックアップを作りましょう (see 節 8.2.9 nnmairix でさらに知っておく必要があること)。
Mairix の設定は簡単です。(少なくとも) 以下のエントリーを含 む `.mairixrc' ファイルを作ってください:
# Your Maildir/MH base folder base=~/Maildir |
これはすべてのメールの基点になるフォルダーです。以下のすべてのディレクト リーはこのフォルダーを基点に相対的な値をとります。 nnmairix
を nnimap
で使いたい場合、この基点のディレクトリー は IMAP サーバーがメールフォルダーを格納するメールディレクトリー を表すものでなければなりません!
maildir= ... 索引を付ける maildir フォルダー ... mh= ... 索引を付ける nnml/mh フォルダー ... mbox= ... 索引を付ける mbox フォルダー ... |
Mairix で索引を付けたいすべてのメールフォルダーと mbox ファイルをこれ で (基点ディレクトリーへの相対値で!) 指定します。nnml
バックエン ドはメールを MH 形式で保存するので、それらのディレクトリー を mh
行に置いておかなければならないことに注意してください。さら に詳しいことについては、この章の最後にある例と mairixrc の man ページを 見てください。
omit=zz_mairix-* |
これは mairix の検索結果に偶然に索引付けをしてしまわないためのものです。 これらのフォルダーの接頭辞は、変数 nnmairix-group-prefix
で変える ことができます。
mformat= ... 'maildir' または 'mh' ... database= ... データベース・ファイルの置き場所 ... |
mformat
の設定は mairix 検索フォルダーへの出力形式を指定します。 検索結果に nnml
でアクセスしたい場合は、これを mh
に設定し てください。さもなければ maildir
を選びましょう。
要約するために、私の `.mairixrc' ファイルを短くしたものを例に挙げま しょう:
base=~/Maildir maildir=.personal:.work:.logcheck:.sent mh=../Mail/nnml/*... mbox=../mboxmail/mailarchive_year* mformat=maildir omit=zz_mairix-* database=~/.mairixdatabase |
この場合、基点のディレクトリーは `~/Maildir' で、そこに私のすべて の Maildir フォルダーが格納されています。ご覧のようにそれぞれのフォルダー はコロンで区切られています。なぜどのフォルダーもドットで始まるのかっ て? それは私が IMAP サーバーとして Dovecot を使い、さらにそれ は Maildir++
フォルダーを使うからです。nnmairix
をテストす るために `~/Mail/nnml' にセーブされている nnml
のメールもい くつか持っています。これは base
ディレクトリーへの相対値で指定し なければならないので ../Mail
の表記が必要です。*...
で終わ る行は、このディレクトリーにあるすべてのファイルを再帰的に走査するためで あることに注意してください。三個のドット無しのワイルドカード *
で は再帰的に働きません。さらに私は `~/mboxmail' のあたりにアーカイブ されたメールを含む古い mbox
ファイルを持っています。その他の行の 意味は言うまでもないですね。
詳細およびさらなるオプションについては mairixrc
の man ページを見 てください。とりわけワイルドカードの使い方は、今まで使っていたのとは少し 違うでしょう。
さあ、それでは最初に mairix
を実行して索引を作りましょう。これに は数分かかるでしょう。でもあらゆる索引が追加的 (インクリメンタル) に更新 を行なうので非常に速いです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
グループモード で G b c (nnmairix-create-server-and-default-group
) をタイ プしてください。これは必要なすべての情報を質問して、nnmairix
サー バーを外部 (foreign) グループとして作成します。以下を指定する必要がある でしょう:
nnmairix
サーバーの 名前 です---好きなものを選んでくださ い。
nnml:mymail
のような完全なサーバー名でなければなりませ ん。今のところ nnmaildir
、nnimap
および nnml
でアク セスするサーバーがサポートされています。上で説明したように、ローカルに格 納されるメールのためには、あなたがメールを格納している既存のサーバーにす れば良いでしょう。しかし nnmairix
専用に、例えば新し い nnmaildir
または nnml
サーバーを第二の (secondary) 選択 方法に加えることもできます (see 節 1.1 ニュースを見つける)。もしまさに第二 の nnml
サーバーを mairix 用に使っているのであれば、サーバー変 数 nnml-get-new-mail
を確実に nil
に設定してください。さも ないとメールを失うことになりかねません (see 節 8.2.9 nnmairix でさらに知っておく必要があること)。 Mairix を IMAP サーバー上で遠隔動作させたいのならば、そこでそ れに対応する nnimap
サーバーを選ばなければなりません。
mairix
で良いのですが、例えば IMAP サーバー上 で mairix を遠隔動作させたいのであれば、ssh SERVER mairix
のよう なものにすることもできます。Mairix へのディフォルトのオプションを加えた い場合、それをここでやっても構いません。でも、代わりに変 数 nnmairix-mairix-search-options
を使う方が良いです。
nnmairix
グループに結び付けられないすべ ての検索結果を格納するグループです。好きなものを選んでください。
nnimap
か nnmaildir
だったら、 Maildir++ つまり隠された (= `.' で始まる ) maildir フォル ダーを使うかどうかを尋ねられるでしょう。例えば Dovecot IMAP サー バーを使っている場合は、そこで `yes' と回答しなければなりません。そ れ以外の場合は `no' と答えるべきです。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
グループモードで:
nnmairix
サーバーと、このサーバーのためのディフォルトの検索グルー プを作ります (nnmairix-create-server-and-default-group
)。これはす でに行なっておいてある必要があります (see 節 8.2.5 nnmairix バックエンドの設定)。
nnmairix-search
)。
nnmairix-widget-search
)。
nnmairix-search-interactive
)。
nnmairix-create-search-group
)。このグループを g また は M-g で更新するときに nnmairix
バックエンドは自動的 に mairix を呼びます。
nnmairix
グループの検索条件を変更しま す (nnmairix-group-change-query-this-group
)。
nnmairix
グループの `スレッド' パラメーターをトグ ルに切り替えます。つまり見つかったメッセージのすべてのスレッドを見たい場 合に使います (nnmairix-group-toggle-threads-this-group
)。
nnmairix-update-database
)。ディフォルトのパラメーターは、これ をできるだけ速くするための -F
および -Q
です (これらのディ フォルトのオプションを定義するには変 数 nnmairix-mairix-update-options
を見てください)。
nnmairix
グループの記事を常に既読または未読に保つか、または 印を変更しないようにしま す (nnmairix-group-toggle-readmarks-this-group
)。
nnmairix
グループを作り直しま す (nnmairix-group-delete-recreate-this-group
)。 nnmairix
グループの記事数がいつも間違っている場合に、これを行なう ことができます。
nnmairix
グループのための allow-fast
パラメー ターをトグルに切り替えま す (nnmairix-group-toggle-allowfast-this-group
)。ディフォルト の nnmairix
の動作は、グループを更新したり入ったときに mairix の 検索を行なうことです。allow-fast
パラメーターが設定されると、グルー プ入ったときではなく、明示的にグループを更新するときだけ mairix が呼ばれ ます。これはグループに入るときに速くなりますが、更新したときとま だ mairix データベースに無いグループに入るときの期間に何かが変化した場合 に、実体の無いシンボリックリンクを生じさせるかもしれません。
nnmairix-group-toggle-propmarks-this-group
)。 (see 節 8.2.7 nnmairix グループの印を伝搬させる方法)。
nnmairix-propagate-marks
)。これ は nnmairix-propagate-marks-upon-close
が nil
である場合だ け必要です。概略モードで:
nnmairix-widget-search
と同じで す) (nnmairix-widget-search-from-this-article
)。
nnmairix-create-search-group-from-message
)。
nnmairix-search-thread-this-article
)。事実上これは現在の記事 の `m:msgid' で nnmairix-search
を呼んでスレッドを得るための ショートカットです。
nnmairix-search-from-this-article
)。これ は `f:From' で nnmairix-search
を呼ぶためのショートカットで す。
nnmairix
グループだけです!) この記事に正しい投 稿様式 (posting styles) とグループパラメーターを適用して返信するために、 この記事が元々来たグループを特定して、そのグループでその記事を表示しよう とします (nnmairix-goto-original-article
)。この関数はもし利用可能 ならレジストリーを使いますが、代替手段として記事ファイルの名前を分析する こともできます。
nnmairix-remove-tick-mark-original-article
) (see 節 8.2.8 nnmairix のヒント、こつ、およびいくつかの例)。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
初めに: 印を伝搬させる機能を効率良く使うためには、実際にはパッチを当て た mairix のバイナリーが必要です。そうしないといつも mairix データベース を更新しなければならないでしょう。パッチはここで手に入ります:
http://www.randomsample.de/mairix-maildir-patch.tar
このパッチには mairix v0.21 のソースコードが必要です。それに付いてい る readme ファイルでどんなことも説明されています。印の伝搬を使わなくても 良いと思うならこれらのパッチを当てなくても構いませんが、それでもなお、そ れらは maildir フラグの変更にまつわるやっかいごとを修正してもくれるので 有用でしょう。
パッチを当てた mairix のバイナリーとともに nnmairix
をメール分 割 (see 節 6.4.6 特級メール分割) の代わりとして使うことができます。例え ば `[email protected]' からのすべてのメールをあるグループに放り込む 代わりに、単に `f:[email protected]' を探す検索グループを作ることが できます。実のところこれが「賢いフォルダー」の肝心なところで、単にすべて を一つのメールフォルダーに放り込んだら、分割する代わりに動的に検索結果を 作るのです。これは、したいときはいつでもフォルダーを変更できるので、より 融通が効きます。このことは、あなたが実際のメールグループの代わりに、いつ もは nnmairix
グループにあるメールを読むであろうことも暗示します。
しかし、一つ問題があります。`[email protected]' から新しいメールを 受け取ったとすると、それは二つのグループに現れるのです。「実際」のグルー プ (例えば INBOX) および nnmairix
検索グループです (後者は、も し mairix データベースを更新してあれば)。nnmairix
グループに入っ てそのメールを読むと既読の印が付きますが、それは nnmairix
グルー プでだけです---「実際」のメールグループでは未読のままです。
そのメールグループをキャッチアップする (すべての記事を既読にする) ことは できます。しかしこれは退屈だし、そのための nnmairix
グループを作っ ていないメールを見落とすかもしれない点で事故を起こしやすいでしょう。もち ろん最初に nnmairix-goto-original-article
(see 節 8.2.6 nnmairix で利用できるショートカットキー) を使ってから元のグループでそのメールを読むことはで きますが、それはもっとやっかいでしょう。
明らかに、元の記事にどうにかして印を自動的に付けることできれば、それが最 も楽なやり方でしょう。これがまさに 印の伝搬 が行なおうとしている ことです。
ディフォルトでは印の伝搬はしないようになっています。あるグループのための それは nnmairix-group-toggle-propmarks-this-group
(G b p に バインドされています) で有効にすることができます。この関数はディフォルト の検索グループで使おうとすると警告を発します。なぜかと言うとディフォルト の検索グループは一時的な検索のためにあるので、印が偶然にこのグループから 伝搬してしまいやすいからです。もっとも本当にそれをやりたいのなら、その警 告を無視することはできます。
印の伝搬を有効にしてあると nnmairix
グループで付けたすべての印が 元のグループに伝搬するはずです。例えば記事に可視 (tick) の印を (ディフォ ルトでは ! で) 付けると、この印は魔法のように元の記事にも付くはず です。
あなたが知っている必要がある、または無い、さらなることがらがあります:
印はすぐにではなく、グループを閉じたときだけ付けられます。これは印の伝搬 を性急に行なわない以外に maildir ファイルを扱うときのシンボリックリンク にまつわる問題の回避もします (フラグの変更はファイル名の変化を伴うので)。 印の伝搬を nnmairix-propagate-marks-upon-close
を通じて制御するこ ともできます (詳しくは変数の説明を見てください)。
当然ながら、あなたが印を付けたいあらゆる記事のために nnmairix
は 元のグループを調べなければならないでしょう。元のグループを特定するため に nnmairix
は、もし使えるなら最初にレジストリーを使います。レジ ストリーは非常に速いです。したがって印の伝搬を使うなら本当にレジストリー を使えるようにすべきです。本当に。RAM とディスクの容量に心配が無いな ら gnus-registry-max-entries
を十分に大きな値に設定してください。 大事を取るためには、おおよそ mairix で索引を付けるメールの量を選んでくだ さい。
レジストリーを使いたくない、またはレジストリーがまだ元の記事を見たことが 無い場合、その記事のファイル名を特定するために nnmairix
は追加 の mairix 検索を行ないます。もちろんこれはレジストリーより遅くなりま す---もしこのやり方で数百ないしは数千の印を付けると、いくらか時間がかか るかもしれません。この状況 は nnmairix-only-use-registry
を t
に設定することによって 避けることができます。
おそらくあなたは逆方向にも印を伝搬させたいでしょう。つまり「本当の」メー ルグループで記事に可視 (tick) 印を付けたら nnmairix
グループにあ る同じ記事も可視になって欲しいということです。いくつかのもっともな理由に より、これは maildir を使う場合だけ効率的に行なうことができます。すぐに 矛盾したことを言いますが、それは nnmaildir
では働きません。なぜな ら nnmaildir
は印を外部のしかもファイルではないところに格納するか らです。したがって nnmairix
グループへの印の伝搬は、通常はファイ ル形式として maildir を使う IMAP サーバーの場合だけ働きます。
今この設定作業を行なっているのな ら nnmairix-propagate-marks-to-nnmairix-groups
を t
に設定 して何が起きるか見てください。もしあなたが見るものが好きではないならば、 再びそれを nil
に戻しましょう。一つの問題は未読記事の数を間違える ことかもしれません。これは元のグループで記事を消去したり、または期限切れ 消去されたときに普通に起きます。これが起きたらそのバックエンドで G b d を使って、その nnmairix
グループを作り直してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
私は大事なメールのグループをグループレベル 1 にしています。Mairix グルー プのグループレベルは 5 なので、それらは起動時にチェックされませ ん (see 節 2.6 グループレベル)。
メールをチェックするために私は以下を使っています:
(defun my-check-mail-mairix-update (level) (interactive "P") ;; 接頭引数が与えられなかったらレベルを 1 に設定する。 (gnus-group-get-new-news (or level 1)) (nnmairix-update-groups "mairixsearch" t t) (gnus-group-list-groups)) (define-key gnus-group-mode-map "g" 'my-check-mail-mairix-update) |
`"mairixsearch"' の代わりにあなたの nnmairix
サーバーの名前 を使いましょう。詳しくは nnmairix-update-groups
の説明を見てくだ さい。
例えばすべての可視記事のためのグループを作ることができます。そこでは記事 が常に未読になっています:
G b g をたたいてグループ名を入力し、検索条件として `F:f' を使っ てください。そしてスレッドを含めないようにします。
次に G b p を使ってこのグループのための印の伝搬を有効にしましょう。 そうしたら G b r を二回使って「常に未読」機能を有効にします。
これはこれで良いでしょう---しかしどうやって nnmairix
グループの可 視印を消したら良いでしょうか? それには二つの選択肢があります: nnmairix-remove-tick-mark-original-article
($ u にバインド されています) を使って元の記事から可視印を取り除くことができます。もう一 つの可能なこと は nnmairix-propagate-marks-to-nnmairix-groups
を t
に設定 することです。しかし上記のこのオプションに関するコメントを見てください。 もしそれが動作するなら可視印は nnmairix
グループにあるはずで、そ れらはいつものように、例えば記事を既読にすることによって取り除くことがで きます。
元の記事から可視印を取り除くと、mairix データベースを更新しかつグループ を更新した後で、その記事は nnmairix
グループから消え去るはずです。 幸いにまさにそれを行なうための関数があります: nnmairix-update-groups
です。詳しくは前述のコードの断片と関数の説 明を見てください。
先に説明したように、すべての nnmairix
グループは実際に は `zz_mairix-nnmaildir
または nnml
を使うと通常 自動講読 にな ります。つまり `zz_mairix*' 様式のグループが突然グループバッファー に現れるのを見ることになります。もしこれが起こったら単に C-k でそ れらのグループを kill してください。これを避けるに は gnus-auto-subscribed-groups
を nil
に設定して自動講読を 恒久的に無効にする (see 節 1.4.3 新しいグループを選別する か、またはもしこの機能 を維持したいのであれば `zz_' ではじまるすべてのグループでそれを無効 にする以下のその場しのぎの手を使ってください:
(setq gnus-auto-subscribed-groups "^\\(nnml\\|nnfolder\\|nnmbox\\|nnmh\\|nnbabyl\\|nnmaildir\\).*:\\([^z]\\|z$\\|\\z[^z]\\|zz$\\|zz[^_]\\|zz_$\\).*") |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
nnml
サーバーを、まさに nnmairix のために作ることができま す。しかしその場合、対応するサーバー変数 nnml-get-new-mail
を明示 的に nil
に設定する必要があります。そうしておかないと新着メールが この第二のサーバーに取り込まれてしまうかもしれません (そして、それらを二 度と見ることはないでしょう)。サーバー定義の例です:
(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil)) |
(nnmaildir
にもサーバー変数 get-new-mail
があるのですが、 それはディフォルトで nil
なので、nnmaildir
サーバーをまさ に mairix 用に使う場合でも、それを明示的に設定する必要はありません。)
nnmairix
グループでレジス トリーを使わないください (ディフォルト で gnus-registry-unfollowed-groups
に含まれています)。も し gnus-registry-split-fancy-with-parent
を使っているな ら 特別な注意 が必要です。分割されて nnmairix
グループに入っ たメールは、通常そのグループの新着メールをチェックしたとたんに永久に無く なってしまいます (はい、私はそれをやってしまいました...)。
nnmairix
グループに入れて はいけません (とにかくそれができるべきではありません)。
nnmairix
グループをエージェント化しないでください (もっとも、それ をやったら何が起きるか私は知りませんが)。
nnmairix
は mairix が呼ばれた後で Gnus にメールバックエンドのグルー プを完全に読み直させる、かなり力まかせな手段を使います---つまり単純にそ のメールバックエンドのグループを消して作り直します。これまでのところ、こ れは何ら問題無く働き、nnmairix
がそれ自身のもの以外のメールグルー プを削除するとは思えません。しかしとにかく本当に、メールフォルダーのバッ クアップを持つべきです。
nnmairix
グループを kill すると永久に失われてし まうことをも意味します。
nnmairix
グループを作って kill すると、メールバックエ ンドのサーバーに "zz_mairix-*" という名前のグループが溜まってしまいま す。もはや不要になった古いグループを削除するに は nnmairix-purge-old-groups
を呼んでください。これは当 然 zz_mairix--
の様式ではどんな「本当の」メールもフォ ルダーにセーブしないことを想定していることに注意してください。 nnmairix
グループの接頭辞は変数 nnmairix-group-prefix
を変 更することによって変えることができます。
nnmairix
を maildir フォルダーとともに使うと問題が起きる場合があ ります。それは maildir がメールのフラグを `Seen' また は `Replied' のように、それぞれ文字 `S' および `R' をメッ セージのファイル名に付け加えることによって格納するという事実によります。 これは、今のところ、新しいメールが届いたときだけでなくメールのフラグが変 化したときも、mairix のデータベースを更新しなければならないであろうこと を暗示しています。同じことが、まだ `new' フォルダーにあるうちに索引 が作られたものの Gnus がそのメールを見たときに `cur' に移された新し いメールにも当てはまります。これが起きた後でデータベースを更新しないと、 mairix 検索は存在しないファイルを指すシンボリックリンクをもたらします。 Gnus では通常それらのメッセージはヘッダーに "(none)" が表示されて現れ、 アクセスすることができません。もしこれが起こった場合、普通 は G b u を使い、かつグループを更新すれば解決します。
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |