.\" @(MHWARNING) .\" written by MH-plus project .SC MH-SEQUENCE 5 .NA mh-sequence \- MH システムでのシーケンス指定 .SY ほとんどの \fIMH\fR コマンド .DE ほとんどの \fIMH\fP コマンドは、`msg' または `msgs' という指定を受け付けます。 ここで、`msg' は一つのメッセージ、`msgs' は一つまたはそれ以上のメッセージを 意味します。メッセージを呼び出すためには、その番号(例えば 1、10、234)または、 以下の予約メッセージ名が使えます。 .in +.5i .sp 1 .nf .ta +\w'\fI名前\fP 'u \fI名前\fP \fI説明\fR first フォルダ内の最初のメッセージ last フォルダ内の最後のメッセージ cur 一番最近にアクセスされたメッセージ prev 番号的に \*(lqcur\*(rq の前のメッセージ next 番号的に \*(lqcur\*(rq の次のメッセージ .re .fi .in -.5i `msg' 引数が使えるコマンドでは、デフォルトは \*(lqcur\*(rq です。 短縮形として \*(lq\&.\*(rq が \*(lqcur\*(rq と同じ意味があります。 例えば、5、10、94、177、325 の五つのメッセージが存在するフォルダに於いては、 \*(lqfirst\*(rq は 5 で、\*(lqlast\*(rq は 325 です。 もし \*(lqcur\*(rq が 94 の時は、\*(lqprev\*(rq は 10 で、\*(lqnext\*(rq は 177 になります。 `msgs' は一つまたはそれ以上のメッセージが指定される事を意味します。 このような場合は、一つのメッセージを指定するか、いくつかのメッセージを スペースで区切って指定する事が出来ます。 メッセージの指定は上述のメッセージ名(メッセージ番号または予約メッセージ名)か、 メッセージ範囲で行ないます。 メッセージ範囲は \*(lqname1\-name2\*(rq または \*(lqname:n\*(rq という形式 で指定されます。 ここで `name'、`name1' そして `name2' はメッセージ名、そして `n' は整数です。 \*(lqname1\-name2\*(rq という指定は `name1' から `name2' までの間に実在する全てのメッセージを意味します。 メッセージ名 \*(lqall\*(rq はメッセージ範囲 \*(lqfirst\-last\*(rq の省略形 として認識されます。 \*(lqname:n\*(rq という指定は `n' 個までのメッセージを意味します。 これらのメッセージは `name' がメッセージ番号または予約メッセージ名 \*(lqfirst\*(rq、\*(lqcur\*(rq、\*(lqnext\*(rq のうちのどれかである場合は `name' から始まります。 また、`name' が \*(lqprev\*(rq または \*(lqlast\*(rq である場合は `name' で終ります。 `n' の解釈は `n' の前にプラスまたはマイナス記号が付くと変わります。 `+n' は常に、`name' から始まる `n' 個までのメッセージ、 `\-n' は常に、`name' で終わる `n' 個までのメッセージを意味します。 `msgs' 引数を受け付けるコマンドでは、デフォルトは \*(lqcur\*(rq または \*(lqall\*(rq で、それぞれのコマンドの持つ意味によって変わります (詳細はそれぞれのコマンドのマニュアルを参照して下さい)。 繰り返し同じメッセージが指定された場合は、それはそのメッセージを一回指定 したのと同じ効果があります。 .Uh "ユーザー定義メッセージ・シーケンス" 上述の予約メッセージ名(定義済み)に加えて、 \fIMH\fP ではユーザー定義シーケンス名をサポートしています。 ユーザー定義シーケンス名は、メッセージのグループに意味のある象徴的な名前を 付ける事によって、\fIMH\fR ユーザーに、同じフォルダ内にあるメッセージの グループを取り扱うことが出来る便利な機能を提供します。 メッセージ・シーケンスを指す名前は英字から始まり、ゼロ個以上の英数字から なる文字列であり、上述の予約メッセージ名は使えません。 シーケンスを定義した後は、 \fIMH\fR コマンドで `msg' または `msgs' 引数が使える所ではどこでも、 それを使う事が出来ます。 ユーザー定義シーケンスではメッセージ範囲指定のいくつかの形式が使えます。 \*(lqname:n\*(rq 形式が使え、ユーザー定義シーケンス `name' の要素である 最初の `n' 個までのメッセージ (あるいは `\-n' に対しては最後の `n' 個までのメッセージ)を意味します。 \*(lqname:next\*(rq と \*(lqname:prev\*(rq という形式も使え、 ユーザー定義シーケンス `name' の要素の中で、(カレント・メッセージから見て) 次、または前のメッセージを意味します。 \*(lqname:first\*(rq と \*(lqname:last\*(rq という指定は、 それぞれ \*(lqname:1\*(rq と \*(lqname:\-1\*(rq と同じ意味です。 \*(lqname:cur\*(rq という形式は使えません (代わりに \*(lqcur\*(rq そのものを使いましょう)。 これらのメッセージ範囲指定の文法に関しては、将来変更される必要があります。 ユーザー定義シーケンス名はそれぞれのフォルダ特有です。 これらは \fIpick\fP と \fImark\fP コマンドを使って定義します。 .Uh "パブリック・シーケンスとプライベート・シーケンス" シーケンスには、 パブリック・シーケンスとプライベート・シーケンスの二つがあります。 パブリック・シーケンスは、 そのフォルダを読む事が出来る全ての \fIMH\fR ユーザーが利用できるもので、 シーケンス情報は、そのフォルダ内の \&.mh\(rusequences ファイルに保存されます。 プライベート・シーケンスは、 それを定義した \fIMH\fR ユーザーだけが利用できるもので、 シーケンス情報は、そのユーザーの \fIMH\fR コンテクスト・ファイルに 保存されます。 デフォルトでは \fIpick\fR と \fImark\fR は、そのシーケンスが定義されるフォルダが その \fIMH\fR ユーザーに取って書き込み可能なら、 パブリック・シーケンスを作ります。 さもなくば、プライベート・シーケンスが作られます。 これは \fImark\fP コマンドに `\-public' または `\-private' オプションを指定する事で置き換え可能です。 パブリック・シーケンスとプライベート・シーケンスの違いは、 それが実際に他の \fIMH\fR ユーザーに 見られるかどうかとは関係ない事に注意して下さい。パブリック・シーケンスでも、 そのフォルダのディレクトリ・モードがアクセス不許可なら見られませんし、 たとえシーケンスが見られても、メッセージが読み出し不許可なら、 そのシーケンスに属するメッセージは見られません。 .Uh "否定シーケンス" \fIMH\fP は、ユーザー定義シーケンスの要素でない全てのメッセージを 指定できる方法を提供しています。 これをするためには ユーザーは \fIMH\fR プロファイルで \*(lqSequence\-Negation\*(rq エントリを 指定します。この値は任意の文字列です。 この文字列は存在するユーザー定義シーケンス名の前に置いて使用できます。 この指定は指定のシーケンス名に属さないメッセージを意味します。 例えば、プロファイル・エントリが以下の場合、 .ti +.5i Sequence\-Negation:\^ not \fIMH\fR コマンドの `msg' または `msgs' 引数として、\*(lqnotfoo\*(rq を 指定した場合、 それはシーケンス \*(lqfoo\*(rq の要素でない全てのメッセージを意味します。 当然の事ながら、 ユーザーはシーケンスを定義する時には、 その名前が \*(lqSequence\-Negation\*(rq プロファイル・エントリの値で 始まらないように注意すべきです。 .Uh "前シーケンス" \fIMH\fR は、\fIMH\fR コマンドに最後に指定された `msgs' または `msg' 引数を 覚えておく機能も提供しています。 それには、エントリ \*(lqPrevious\-Sequence\*(rq が \fIMH\fR プロファイルで 指定されていればよいです。 その値はシーケンス名またはスペースで区切られた複数のシーケンス名です。 もしこのエントリが定義されていると、 \fIMH\fP コマンドが終了した時に、 このエントリで指定されているシーケンス名を そのコマンドで指定されたメッセージで定義します。 従って、以下のプロファイル・エントリは .ti +.5i Previous\-Sequence:\^ pseq `msg' または `msgs' 引数を受け付ける全ての \fIMH\fR コマンドは、 それが終了する時に、 それらのメッセージで \*(lqpseq\*(rq シーケンスを定義します。 \fB注意:\fP \*(lqPrevious\-Sequence\*(rq 仕様を使う場合には、 実行速度が低下することがあり得ます。 この機能を使うと、 \fB全ての\fP \fIMH\fR プログラムは、それが実行される度に、 フォルダ内の \&.mh\(rusequences ファイルにシーケンス情報を書き込まなければ ならないからです。 もし、\*(lqPrevious\-Sequence\*(rq プロファイル・エントリが定義されてない 場合は、\fIpick\fR と \fImark\fR だけが \&.mh\(rusequences ファイルに書き 込みます。 .Uh "未読シーケンス" 最後に、メッセージが既に読まれたものであるかどうかを示して欲しいと思う 人もいることでしょう。 この機能をサポートするために \fIinc\fR と \fIshow\fR はプロファイル・エントリ \*(lqUnseen\-Sequence\*(rq を見ます。 \&.mh\(ruprofile 内のこのエントリは、一つあるいはそれ以上のシーケンス名を スペースで区切ったものであるべきです。 もし、プロファイルの \*(lqUnseen\-Sequence\*(rq に値がある場合、 \fIinc\fR が新しいメッセージをフォルダに置く度に、 その新しいメッセージはこのエントリの値が示すシーケンスに追加されます。 従って、プロファイル・エントリが次のようだと、 .ti +.5i Unseen\-Sequence:\^ unseen \fIinc\fR は新しいメッセージを \*(lqunseen\*(rq シーケンスに追加します。 これは \*(lqPrevious\-Sequence\*(rq エントリの行動と似ていますが、 このシーケンスは \fIinc\fP によって、消される事はありません (追加される一方です)。 同様に、 \fIshow\fR (または \fInext\fR や \fIprev\fR\^)がメッセージを表示する度に、 そのメッセージはプロファイルの \*(lqUnseen\-Sequence\*(rq エントリで示す シーケンスから削除されます。 なお、未読シーケンスは、実際にユーザーがそのメッセージを見たかどうかを正確に 示している訳ではない点に注意して下さい。\fIshow\fR (または \fInext\fR や \fIprev\fR\^)を使わずに、他の UNIX コマンド等でそのメッセージを見た場合は、 そのメッセージは未読シーケンスからは削除されません。 .Fi ^$HOME/\&.mh\(ruprofile~^ユーザーのプロファイル ^/context~^ユーザーのコンテクスト ^/\&.mh\(rusequences~^ に対するパブリック・シーケンス .Pr ^Sequence\-Negation:~^シーケンスにないメッセージを示す .Ps ^Previous\-Sequence:~^最後に指定されたメッセージ .Ps ^Unseen\-Sequence:~^まだユーザーが見ていないメッセージ .Sa mh(1), mark(1), pick(1), mh-profile(5) .De 無し。 .Co 全て。 .\" 【JP-3.00 で修正済み】 .\" .Bu .\" ユーザー定義シーケンスは \&.mh\(rusequences ファイルに、 .\" 指定のメッセージの列をスペースで区切った形で書き込まれます。 .\" もし、ユーザー定義シーケンスが多過ぎるメッセージを含んだ場合、 .\" ファイルの行が \fIMH\fP で扱えないぐらいに大きくなるかも知れません。 .\" この場合エラーメッセージ \*(lq\&.mh\(rusequences is poorly formatted\*(rq .\" が出ます。この場合、このファイルを手で編集して、問題の行を消さなければ .\" なりません。 .\" .\" これは \fIMH\fP プロファイルで \*(lqPrevious\-Sequence\*(rq エントリを .\" 定義していて、番号が飛び飛びで多くのメッセージを含んでいるフォルダを .\" 持っている場合に起こりやすいものです。 .\" 大きなフォルダで運用している場合は、 .\" しばしば \*(lqfolder\ \-pack\*(rq で数字の抜けを無くすようにすべきです。 .En