MH-SEQUENCE(5)

NAME
mh-sequence - MH システムでのシーケンス指定

SYNOPSIS
ほとんどの MH コマンド

DESCRIPTION
ほとんどの MH コマンドは、`msg' または `msgs' という指定を受け付けます。 ここで、`msg' は一つのメッセージ、`msgs' は一つまたはそれ以上のメッセージを 意味します。メッセージを呼び出すためには、その番号(例えば 1、10、234)または、 以下の予約メッセージ名が使えます。

名前	説明
first	フォルダ内の最初のメッセージ
last	フォルダ内の最後のメッセージ
cur	一番最近にアクセスされたメッセージ
prev	番号的に "cur" の前のメッセージ
next	番号的に "cur" の次のメッセージ
`msg' 引数が使えるコマンドでは、デフォルトは "cur" です。 短縮形として "." が "cur" と同じ意味があります。 例えば、5、10、94、177、325 の五つのメッセージが存在するフォルダに於いては、 "first" は 5 で、"last" は 325 です。 もし "cur" が 94 の時は、"prev" は 10 で、"next" は 177 になります。 `msgs' は一つまたはそれ以上のメッセージが指定される事を意味します。 このような場合は、一つのメッセージを指定するか、いくつかのメッセージを スペースで区切って指定する事が出来ます。 メッセージの指定は上述のメッセージ名(メッセージ番号または予約メッセージ名)か、 メッセージ範囲で行ないます。 メッセージ範囲は "name1-name2" または "name:n" という形式 で指定されます。 ここで `name'、`name1' そして `name2' はメッセージ名、そして `n' は整数です。 "name1-name2" という指定は `name1' から `name2' までの間に実在する全てのメッセージを意味します。 メッセージ名 "all" はメッセージ範囲 "first-last" の省略形 として認識されます。 "name:n" という指定は `n' 個までのメッセージを意味します。 これらのメッセージは `name' がメッセージ番号または予約メッセージ名 "first"、"cur"、"next" のうちのどれかである場合は `name' から始まります。 また、`name' が "prev" または "last" である場合は `name' で終ります。 `n' の解釈は `n' の前にプラスまたはマイナス記号が付くと変わります。 `+n' は常に、`name' から始まる `n' 個までのメッセージ、 `-n' は常に、`name' で終わる `n' 個までのメッセージを意味します。 `msgs' 引数を受け付けるコマンドでは、デフォルトは "cur" または "all" で、それぞれのコマンドの持つ意味によって変わります (詳細はそれぞれのコマンドのマニュアルを参照して下さい)。 繰り返し同じメッセージが指定された場合は、それはそのメッセージを一回指定 したのと同じ効果があります。 上述の予約メッセージ名(定義済み)に加えて、 MH ではユーザー定義シーケンス名をサポートしています。 ユーザー定義シーケンス名は、メッセージのグループに意味のある象徴的な名前を 付ける事によって、MH ユーザーに、同じフォルダ内にあるメッセージの グループを取り扱うことが出来る便利な機能を提供します。 メッセージ・シーケンスを指す名前は英字から始まり、ゼロ個以上の英数字から なる文字列であり、上述の予約メッセージ名は使えません。 シーケンスを定義した後は、 MH コマンドで `msg' または `msgs' 引数が使える所ではどこでも、 それを使う事が出来ます。 ユーザー定義シーケンスではメッセージ範囲指定のいくつかの形式が使えます。 "name:n" 形式が使え、ユーザー定義シーケンス `name' の要素である 最初の `n' 個までのメッセージ (あるいは `-n' に対しては最後の `n' 個までのメッセージ)を意味します。 "name:next" と "name:prev" という形式も使え、 ユーザー定義シーケンス `name' の要素の中で、(カレント・メッセージから見て) 次、または前のメッセージを意味します。 "name:first" と "name:last" という指定は、 それぞれ "name:1" と "name:-1" と同じ意味です。 "name:cur" という形式は使えません (代わりに "cur" そのものを使いましょう)。 これらのメッセージ範囲指定の文法に関しては、将来変更される必要があります。 ユーザー定義シーケンス名はそれぞれのフォルダ特有です。 これらは pick と mark コマンドを使って定義します。 シーケンスには、 パブリック・シーケンスとプライベート・シーケンスの二つがあります。 パブリック・シーケンスは、 そのフォルダを読む事が出来る全ての MH ユーザーが利用できるもので、 シーケンス情報は、そのフォルダ内の .mh_sequences ファイルに保存されます。 プライベート・シーケンスは、 それを定義した MH ユーザーだけが利用できるもので、 シーケンス情報は、そのユーザーの MH コンテクスト・ファイルに 保存されます。 デフォルトでは pick と mark は、そのシーケンスが定義されるフォルダが その MH ユーザーに取って書き込み可能なら、 パブリック・シーケンスを作ります。 さもなくば、プライベート・シーケンスが作られます。 これは mark コマンドに `-public' または `-private' オプションを指定する事で置き換え可能です。 パブリック・シーケンスとプライベート・シーケンスの違いは、 それが実際に他の MH ユーザーに 見られるかどうかとは関係ない事に注意して下さい。パブリック・シーケンスでも、 そのフォルダのディレクトリ・モードがアクセス不許可なら見られませんし、 たとえシーケンスが見られても、メッセージが読み出し不許可なら、 そのシーケンスに属するメッセージは見られません。 MH は、ユーザー定義シーケンスの要素でない全てのメッセージを 指定できる方法を提供しています。 これをするためには ユーザーは MH プロファイルで "Sequence-Negation" エントリを 指定します。この値は任意の文字列です。 この文字列は存在するユーザー定義シーケンス名の前に置いて使用できます。 この指定は指定のシーケンス名に属さないメッセージを意味します。 例えば、プロファイル・エントリが以下の場合、
Sequence-Negation: not MH コマンドの `msg' または `msgs' 引数として、"notfoo" を 指定した場合、 それはシーケンス "foo" の要素でない全てのメッセージを意味します。 当然の事ながら、 ユーザーはシーケンスを定義する時には、 その名前が "Sequence-Negation" プロファイル・エントリの値で 始まらないように注意すべきです。 MH は、MH コマンドに最後に指定された `msgs' または `msg' 引数を 覚えておく機能も提供しています。 それには、エントリ "Previous-Sequence" が MH プロファイルで 指定されていればよいです。 その値はシーケンス名またはスペースで区切られた複数のシーケンス名です。 もしこのエントリが定義されていると、 MH コマンドが終了した時に、 このエントリで指定されているシーケンス名を そのコマンドで指定されたメッセージで定義します。 従って、以下のプロファイル・エントリは
Previous-Sequence: pseq `msg' または `msgs' 引数を受け付ける全ての MH コマンドは、 それが終了する時に、 それらのメッセージで "pseq" シーケンスを定義します。 注意: "Previous-Sequence" 仕様を使う場合には、 実行速度が低下することがあり得ます。 この機能を使うと、 全ての MH プログラムは、それが実行される度に、 フォルダ内の .mh_sequences ファイルにシーケンス情報を書き込まなければ ならないからです。 もし、"Previous-Sequence" プロファイル・エントリが定義されてない 場合は、pick と mark だけが .mh_sequences ファイルに書き 込みます。 最後に、メッセージが既に読まれたものであるかどうかを示して欲しいと思う 人もいることでしょう。 この機能をサポートするために inc と show はプロファイル・エントリ "Unseen-Sequence" を見ます。 .mh_profile 内のこのエントリは、一つあるいはそれ以上のシーケンス名を スペースで区切ったものであるべきです。 もし、プロファイルの "Unseen-Sequence" に値がある場合、 inc が新しいメッセージをフォルダに置く度に、 その新しいメッセージはこのエントリの値が示すシーケンスに追加されます。 従って、プロファイル・エントリが次のようだと、
Unseen-Sequence: unseen inc は新しいメッセージを "unseen" シーケンスに追加します。 これは "Previous-Sequence" エントリの行動と似ていますが、 このシーケンスは inc によって、消される事はありません (追加される一方です)。 同様に、 show (または next や prev)がメッセージを表示する度に、 そのメッセージはプロファイルの "Unseen-Sequence" エントリで示す シーケンスから削除されます。 なお、未読シーケンスは、実際にユーザーがそのメッセージを見たかどうかを正確に 示している訳ではない点に注意して下さい。show (または next や prev)を使わずに、他の UNIX コマンド等でそのメッセージを見た場合は、 そのメッセージは未読シーケンスからは削除されません。
$HOME/.mh_profile    ユーザーのプロファイル
<mh-dir>/context    ユーザーのコンテクスト
<folder>/.mh_sequences    <folder> に対するパブリック・シーケンス
Sequence-Negation:    シーケンスにないメッセージを示す
Previous-Sequence:    最後に指定されたメッセージ
Unseen-Sequence:    まだユーザーが見ていないメッセージ
mh(1), mark(1), pick(1), mh-profile(5) 無し。 全て。