view conf/doc/ja-mh-sequence.rf @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
line wrap: on
line source

.\"	@(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~^ユーザーのプロファイル
^<mh\-dir>/context~^ユーザーのコンテクスト
^<folder>/\&.mh\(rusequences~^<folder> に対するパブリック・シーケンス
.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