[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8. 検索

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Searching"
"gnus/検索"へのコメント(無し)

FIXME: Gnus の検索機能に関する短い概要を追加。nnir, nnmairix, contrib/gnus-namazu の簡潔な比較もまた良し。

この章は、ある語に合致する記事をグループおよびサーバーで検索してそれらの 記事を取得するための道具について説明します。Gnus はそれらの合致パターン を概略バッファーの記事たちを通して検索する、より単純な機構を提供します。 See 節 3.27.2 記事を探す.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1 nnir

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=nnir"
"gnus/nnir"へのコメント(無し)

この項は nnir を使って Gnus の記事を検索するやり方を説明します。

8.1.1 nnir とは?    nnir は何をするか?
8.1.2 基本的な使い方   
8.1.3 nnir の設定方法    nnir の設定方法



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.1 nnir とは?

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=What+is+nnir%3F"
"gnus/nnirとは?"へのコメント(無し)

nnir はメールとニュースの倉庫を検索するための数ある道具へ の Gnus のインターフェースです。異なるバックエン ド (例えば nnimapnntp) は異なる道具 (nnir 用語 で言うところの エンジン) で動作しますが、すべて同じ基本的な検索イ ンターフェースを使います。

nnimap および gmane 検索エンジンは設定無しで動くはずです。 他のエンジンはローカルな索引を必要とします。それは Gnus の外で作り、かつ 維持しなければなりません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.2 基本的な使い方

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Basic+Usage"
"gnus/基本的な使い方"へのコメント(無し)

グループバッファーで 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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3 nnir の設定方法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Setting+up+nnir"
"gnus/nnirの設定方法"へのコメント(無し)

nnir を設定するには、いくらか準備作業が必要です。まず、使おうと思ってい る検索エンジンを設定しましょう。それらのうちのいくつか、例え ば imapgmane については特別な設定は要りません。他の、 例えば namazuswish については後述の設定が必要です。次 に、サーバーまたはバックエンドと検索エンジンを関連付ける必要があります。

もし単に 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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.1 エンジンとの関連付け

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Associating+Engines"
"gnus/エンジンとの関連付け"へのコメント(無し)

グループを検索するときに 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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.2 Imap エンジン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=The+imap+Engine"
"gnus/Imapエンジン"へのコメント(無し)

imap エンジンは設定不要です。

imap エンジンを使う検索には、簡単な検索語の書き方があります。検索 は常に大文字と小文字を区別せず、以下の機能を持っています (Google 検索の 検索語の書き方に倣っています)。

`ブール演算子'
AND、OR、および NOT をサポートし、演算子の優先順位を制御するために括弧を 使うことができます。例えば「(emacs OR xemacs) AND linux」のように。演算 子はそれであると認知されるために、すべて大文字で書かなければならないこと に注意してください。さらに、語に先立つ - 記号は「NOT 語」と等価です。

`自動 AND 検索'
もし複数の語を指定すると、それらはすべての要素に合致することを意図し た AND 検索として扱われます。

`熟語検索'
もし検索語を 2重引用符で囲むと、それはひとまとまりの文字列として扱われま す。

ディフォルトではメッセージ全体が検索されます。接頭引数を使うことによって、 検索をメッセージの指定する部分だけに制限することができ、そうすると検索語 が入力された後で、メッセージの部分を (補完付きで) 尋ねられます。選択肢に は "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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.3 Gmane エンジン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=The+gmane+Engine"
"gnus/Gmaneエンジン"へのコメント(無し)

gmane エンジンは設定不要です。

gmane エンジンを使う検索には、簡単な検索語の書き方があります。

`ブール演算子'
AND、OR、NOT (または AND NOT) および XOR をサポートし、演算子の優先順位 を制御するために括弧を使うことができます。例えば「(emacs OR xemacs) AND linux」のように。演算子はそれであると認知されるために、すべて大文字で書 かなければならないことに注意してください。

`必須の、または除外すべき語'
+ と - は語が必須であるか、または除外すべきかを指定します。例え ば: 「football -american」

`Unicode の取扱い'
検索エンジンはすべてのテキストを utf-8 に変換するので、どんな言語でも検 索できるはずです。

`Stopwords'
ありふれた英単語 ('the' や 'a' のようなもの) はディフォルトで無視されま す。そのような単語でも + を前置き (例: +the) したり、引用符で囲 む (例: "the") ことによって検索対象にすることができます。

接頭引数を使うことによって、検索を指定した著者による記事に限定することが できます。そうすると検索語が入力された後で、合致する著者名 (または名前の 一部) が尋ねられます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.4 Swish++ エンジン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=The+swish%2B%2B+Engine"
"gnus/Swish++エンジン"へのコメント(無し)

FIXME: ここで何かもっと言う。

Swish++ の資料は sourceforge の swish++ のページで見つかるでしょ う: http://swishplusplus.sourceforge.net

nnir-swish++-program
Swish++ の実行形式の名前。ディフォルトは search です。

nnir-swish++-additional-switches
Swish++ に追加の引数として与えられる文字列のリスト。ディフォルト は nil です。

nnir-swish++-remove-prefix
グループ名を得るために swish++ が返すそれぞれのファイル名から取り除く接 頭語。これはディフォルトでは $HOME/Mail です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.5 Swish-e エンジン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=The+swish%2De+Engine"
"gnus/Swish-eエンジン"へのコメント(無し)

FIXME: ここで何かもっと言う。

Swish-e の資料は swish-e ホームページで見つかるでしょ う: http://swish-e.org

nnir-swish-e-program
Swish-e 検索プログラムの名前。ディフォルトは swish-e です。

nnir-swish-e-additional-switches
Swish-e に追加の引数として与えられる文字列のリスト。ディフォルト は nil です。

nnir-swish-e-remove-prefix
グループ名を得るために swish-e が返すそれぞれのファイル名から取り除く接 頭語。これはディフォルトでは $HOME/Mail です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.6 Namazu エンジン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=The+namazu+Engine"
"gnus/Namazuエンジン"へのコメント(無し)

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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.7 Hyrex エンジン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=The+hyrex+Engine"
"gnus/Hyrexエンジン"へのコメント(無し)
このエンジンはもはや使われていません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.1.3.8 カスタマイズ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Customizations"
"gnus/カスタマイズ"へのコメント(無し)

nnir-method-default-engines
サーバーのバックエンドと検索エンジンのペアよりなる連想リスト。ディフォル トの関連付けは次の通りです:

 
(nnimap . imap)
(nntp . gmane)

nnir-ignored-newsgroups
一つのサーバーにあるすべてのグループを検索するときに、active ファイルに ある読み飛ばすべきニュースグループに合致する正規表現。

nnir-summary-line-format
nnir 概略バッファーの行のために使われる書法仕様。 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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2 nnmairix

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=nnmairix"
"gnus/nnmairix"へのコメント(無し)

(訳注: Mairix は ASCII 文字しかサポートしません。)

この項は、メールに索引を付けて Gnus 内で検索するために、どうやっ て mairix とバックエンド nnmairix を設定するかを説明します。さら に mairix 検索に結び付けられて自動的に更新される恒久的 な "賢い" (smart な) グループを作ることができます。

8.2.1 メール検索エンジン mairix について   
8.2.2 nnmairix を使うために必要なこと   
8.2.3 nnmairix は実際に何をするのか?   
8.2.4 mairix の設定   
8.2.5 nnmairix バックエンドの設定   
8.2.6 nnmairix で利用できるショートカットキー    利用できるショートカットキー
8.2.7 nnmairix グループの印を伝搬させる方法   
8.2.8 nnmairix のヒント、こつ、およびいくつかの例    ヒント、こつ、およびいくつかの例
8.2.9 nnmairix でさらに知っておく必要があること    さらに知っておく必要があること



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.1 メール検索エンジン mairix について

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=About+mairix"
"gnus/メール検索エンジンmairixについて"へのコメント(無し)

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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.2 nnmairix を使うために必要なこと

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=nnmairix+requirements"
"gnus/nnmairixを使うために必要なこと"へのコメント(無し)

Mairix はローカルなメールを検索します---つまり mairix はメール・フォルダー を必ず直接にアクセスできなければなりません。もしメールが別のサーバー (例 えば IMAP サーバー) にあって、たまたま shell でアクセスするこ とができるのならば、nnmairix は例えば ssh を介して mairix を遠隔 で動作させることもできます。

加えて、nnmairix は Gnus のバックエンド nnmlnnmaildir および nnimap だけをサポートします。 nnmairix を使うには、必ずこれらのバックエンドの一つを使わなければ なりません。nnmboxnnfolder または nnmh のような他 のバックエンドでは動作しないでしょう。

もしどうしても mbox を使わなければならなくて、それで も nnmairix を使いたいのならば、ローカルな IMAP サーバー を立ち上げることによって nnimap を介してアクセスすることができま す。これはいくつかの mbox ファイルにアクセスするためにしてはかなり大がか りな作業になるので、もう MH か Maildir に変えてしまいましょう。それで も mbox を使うことに本当に本当に情熱を持っているのなら、Emacs 23 に付属 している `mairix.el' パッケージを研究する必要があるでしょう。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.3 nnmairix は実際に何をするのか?

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=What+nnmairix+does"
"gnus/nnmairixは実際に何をするのか?"へのコメント(無し)

バックエンド 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 フォルダーのために三つの異なるメールバックエンド nnmlnnmaildir または nnimap の中から選ぶことができます。 nnmairix は検索結果をこのメールバックエンド の zz_mairix-- という名前のフォルダーに格納するため に mairix バイナリーを呼びますが、それらのフォルダーは Gnus フロントエン ドには名前が だけになって渡されます。すでにメールを格納し ている既存のメールバックエンドを使うことができますが、あなたの他のメール と並べて新しいメールグループを作る nnmairix が気持ち悪いのであれ ば、例えば新しい nnmaildir または nnml サーバー を mairix 専用に作ることもできます。ただし、それらのサーバーが間違って新 着メールを取り込んでしまわないようにしてくださ い (see 節 8.2.9 nnmairix でさらに知っておく必要があること)。もし nnimap ととも に IMAP サーバーで mairix をリモートに使いたいのであれば、特別 な事情が生じます---ここでは mairix フォルダーと他のメールが同 じ nnimap バックエンド上になければなりません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.4 mairix の設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Setting+up+mairix"
"gnus/mairixの設定"へのコメント(無し)

まずはメールフォルダーのバックアップを作りましょう (see 節 8.2.9 nnmairix でさらに知っておく必要があること)。

Mairix の設定は簡単です。(少なくとも) 以下のエントリーを含 む `.mairixrc' ファイルを作ってください:

 
# Your Maildir/MH base folder
base=~/Maildir

これはすべてのメールの基点になるフォルダーです。以下のすべてのディレクト リーはこのフォルダーを基点に相対的な値をとります。 nnmairixnnimap で使いたい場合、この基点のディレクトリー は 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 ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.5 nnmairix バックエンドの設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Configuring+nnmairix"
"gnus/nnmairixバックエンドの設定"へのコメント(無し)

グループモード で G b c (nnmairix-create-server-and-default-group) をタイ プしてください。これは必要なすべての情報を質問して、nnmairix サー バーを外部 (foreign) グループとして作成します。以下を指定する必要がある でしょう:



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.6 nnmairix で利用できるショートカットキー

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=nnmairix+keyboard+shortcuts"
"gnus/nnmairixで利用できるショートカットキー"へのコメント(無し)

グループモードで:

G b c
nnmairix サーバーと、このサーバーのためのディフォルトの検索グルー プを作ります (nnmairix-create-server-and-default-group)。これはす でに行なっておいてある必要があります (see 節 8.2.5 nnmairix バックエンドの設定)。

G b s
Mairix に送られる検索語を与えます。検索結果はディフォルトの検索グループ に格納され、それは自動的に表示されます (nnmairix-search)。

G b m
Mairix の検索または恒久的なグループをもっと快適に、常にグループのカスタ マイズに似たグラフィックなウィジェットを使って作るようにします。それがど んなものかを知るには、まずは試してみてくださ い (nnmairix-widget-search)。

G b i
もう一つの快適な mairix 検索コマンドですが、ミニバッファーしか使いませ ん (nnmairix-search-interactive)。

G b g
検索に関連させられた恒久的なグループを作りま す (nnmairix-create-search-group)。このグループを g また は M-g で更新するときに nnmairix バックエンドは自動的 に mairix を呼びます。

G b q
カーソル位置の nnmairix グループの検索条件を変更しま す (nnmairix-group-change-query-this-group)。

G b t
カーソル位置の nnmairix グループの `スレッド' パラメーターをトグ ルに切り替えます。つまり見つかったメッセージのすべてのスレッドを見たい場 合に使います (nnmairix-group-toggle-threads-this-group)。

G b u
データベースを更新するために mairix バイナリーを呼びま す (nnmairix-update-database)。ディフォルトのパラメーターは、これ をできるだけ速くするための -F および -Q です (これらのディ フォルトのオプションを定義するには変 数 nnmairix-mairix-update-options を見てください)。

G b r
この nnmairix グループの記事を常に既読または未読に保つか、または 印を変更しないようにしま す (nnmairix-group-toggle-readmarks-this-group)。

G b d
「本当の」メールバックエンドで nnmairix グループを作り直しま す (nnmairix-group-delete-recreate-this-group)。 nnmairix グループの記事数がいつも間違っている場合に、これを行なう ことができます。

G b a
カーソル位置の nnmairix グループのための allow-fast パラメー ターをトグルに切り替えま す (nnmairix-group-toggle-allowfast-this-group)。ディフォルト の nnmairix の動作は、グループを更新したり入ったときに mairix の 検索を行なうことです。allow-fast パラメーターが設定されると、グルー プ入ったときではなく、明示的にグループを更新するときだけ mairix が呼ばれ ます。これはグループに入るときに速くなりますが、更新したときとま だ mairix データベースに無いグループに入るときの期間に何かが変化した場合 に、実体の無いシンボリックリンクを生じさせるかもしれません。

G b p
このグループの印を伝搬させるかどうかをトグルに切り替えま す (nnmairix-group-toggle-propmarks-this-group)。 (see 節 8.2.7 nnmairix グループの印を伝搬させる方法)。

G b o
印を主動で伝搬させます (nnmairix-propagate-marks)。これ は nnmairix-propagate-marks-upon-closenil である場合だ け必要です。

概略モードで:

$ m
現在のメッセージに基づいた mairix の検索またはグループを、グラフィックな ウィジェットを使って作ります (nnmairix-widget-search と同じで す) (nnmairix-widget-search-from-this-article)。

$ g
現在のメッセージに基づいた検索条件で新しい検索グループを対話的に作ります。 グラフィックなウィジェットの代わりにミニバッファーを使います が (nnmairix-create-search-group-from-message)。

$ t
現在の記事のスレッドを捜しま す (nnmairix-search-thread-this-article)。事実上これは現在の記事 の `m:msgid' で nnmairix-search を呼んでスレッドを得るための ショートカットです。

$ f
現在の記事の送信者からのすべてのメッセージを探しま す (nnmairix-search-from-this-article)。これ は `f:From' で nnmairix-search を呼ぶためのショートカットで す。

$ o
(これが使えるのは nnmairix グループだけです!) この記事に正しい投 稿様式 (posting styles) とグループパラメーターを適用して返信するために、 この記事が元々来たグループを特定して、そのグループでその記事を表示しよう とします (nnmairix-goto-original-article)。この関数はもし利用可能 ならレジストリーを使いますが、代替手段として記事ファイルの名前を分析する こともできます。

$ u
元の記事から、もしあれば可視記事の印 (tick mark) を取り除きま す (nnmairix-remove-tick-mark-original-article) (see 節 8.2.8 nnmairix のヒント、こつ、およびいくつかの例)。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.7 nnmairix グループの印を伝搬させる方法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=Propagating+marks"
"gnus/nnmairixグループの印を伝搬させる方法"へのコメント(無し)

初めに: 印を伝搬させる機能を効率良く使うためには、実際にはパッチを当て た 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-registryt に設定することによって 避けることができます。

おそらくあなたは逆方向にも印を伝搬させたいでしょう。つまり「本当の」メー ルグループで記事に可視 (tick) 印を付けたら nnmairix グループにあ る同じ記事も可視になって欲しいということです。いくつかのもっともな理由に より、これは maildir を使う場合だけ効率的に行なうことができます。すぐに 矛盾したことを言いますが、それは nnmaildir では働きません。なぜな ら nnmaildir は印を外部のしかもファイルではないところに格納するか らです。したがって nnmairix グループへの印の伝搬は、通常はファイ ル形式として maildir を使う IMAP サーバーの場合だけ働きます。

今この設定作業を行なっているのな ら nnmairix-propagate-marks-to-nnmairix-groupst に設定 して何が起きるか見てください。もしあなたが見るものが好きではないならば、 再びそれを nil に戻しましょう。一つの問題は未読記事の数を間違える ことかもしれません。これは元のグループで記事を消去したり、または期限切れ 消去されたときに普通に起きます。これが起きたらそのバックエンドで G b d を使って、その nnmairix グループを作り直してください。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.8 nnmairix のヒント、こつ、およびいくつかの例

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=nnmairix+tips+and+tricks"
"gnus/nnmairixのヒント、こつ、およびいくつかの例"へのコメント(無し)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

8.2.9 nnmairix でさらに知っておく必要があること

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=gnus-ja&node=nnmairix+caveats"
"gnus/nnmairixでさらに知っておく必要があること"へのコメント(無し)


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]