MH-PROFILE(5)

NAME
mh-profile - MH のユーザー・プロファイル

SYNOPSIS
.mh_profile

DESCRIPTION
全ての MH ユーザーは、自分のホーム・ディレクトリに .mh_profile という名前のファイルを持っているはずです。 このファイルには MH のプログラムの一部または全部が使うパラメータ群 が含まれています。 このファイル中のそれぞれのエントリは次のような形式です。
    profile-component: value もし、エントリのテキストが数行に渡る場合は、各継続行の最初はスペース、 もしくはタブである事から継続行であることが分かります。 使用可能なプロファイル・コンポーネントは以下に例示します。 `Path:' だけは必須で、その他は無くても大丈夫です。 いくつかのものは、それがない時はデフォルトの値を持ちます。 以下の説明で、 (profile, default) はその情報がユーザーの MH プロファイル(profile)に 保持されるのか、MH コンテクスト(context)に保持されるのかを表し、 また、デフォルトの値が何であるのかを表します。
Path: Mail
ユーザーの MH ディレクトリの位置を示します。 この場合、ユーザーのホーム・ディレクトリの下の “Mail” という ディレクトリです。 (profile, デフォルトは無し)
context: context
MH コンテクスト・ファイルの位置を宣言します。 後述の HISTORY 節も参照して下さい。 (profile, default: <mh-dir>/context)
Current-Folder: inbox
カレント・フォルダを記録します。 (context, default: “Inbox” で指定されたフォルダ)
Inbox:    inbox
inbox の名前を定義します。 (profile, default: inbox)
Previous-Sequence: pseq
プログラムに指定された `msgs' または `msg' 引数に対して、 設定すべきシーケンスの名前です。 もし設定されてない場合や空である場合は、何のシーケンスも定義しません。 そうでない場合は、 `msgs' または `msg' 引数を取るプログラムを実行する度に、 このコンポーネントで指定されたそれぞれのシーケンス名に対して、 まずシーケンスを空にし、 それから指定されたそれぞれのメッセージがシーケンスに追加されます。 (profile, デフォルトは無し)
Sequence-Negation: not
もしシーケンス名の前に置かれた時にそのシーケンスを否定するような文字列を 定義します。 従って、この場合、 “notseen” はシーケンス “seen” に含まれない全てのメッセージを 表します。 (profile, デフォルトは無し)
Unseen-Sequence: unseen
未読メッセージを表すシーケンスです。 inc は取り込んだメッセージをこのシーケンスに追加し、 show はひとたび見たら、 そのメッセージをこのシーケンスから外します。 もし設定してない場合や、空である場合はシーケンスは定義されません。 そうでない場合は、それぞれのメッセージはそれぞれの与えられたシーケンス名に 追加されます。 (profile, デフォルトは無し)
mh-sequences: .mh_sequences
それぞれのフォルダ内に、パブリック・シーケンスの情報を書き込むファイル名です。 パブリック・シーケンスを使用不能にするには、この値を空にします。 (profile, default: .mh_sequences)
atr-seq-folder: 172 178-181 212
フォルダ folder でのプライベート・シーケンス seq の情報を 保持します。 (context, デフォルトは無し)
Editor: /usr/ucb/ex
comp (1)、dist (1)、forw (1)、そして repl (1) で使用するエディタを指定します。 (profile, default: prompter)
Msg-Protect: 644
メッセージ・ファイルのモードを 8進数で与えます。 この 8進数の説明は chmod (1) を参照して下さい。 (profile, default: オプション MSGPROT の値、または 0644)
Folder-Protect: 711
フォルダ・ディレクトリのモードを 8進数で与えます。 (profile, default: オプション FOLDPROT の値、または 0711)
program: デフォルトの引数
MH プログラム program が起動した時にデフォルトで使用される引数を 設定します。 例えば、メッセージに返信する際の Editor プロファイル・コンポーネントを置き換えるには、
    repl: -editor /bin/ed
というように出来ます。 (profile, デフォルトは無し)
lasteditor-next: nexteditor
エディタ “lasteditor” を使用した後で使うエディタのデフォルトを “nexteditor” に設定します。 これは comp、dist、forw、そして repl で、 “What now?” レベルで使用できます。 ドラフトを “lasteditor” で編集した後には、 デフォルトのエディタは “nexteditor” になります。 もしユーザーが “What now?” に対して、引数をつけずに “edit” と 入力すると、“nexteditor” が使われます。 (profile, デフォルトは無し)
bboards: system
bbc に興味のある電子掲示板(あるいはニュース・グループ)がどれかを 伝えます。 (profile, default: system)
Folder-Stack: folders
folder コマンドに於ける、フォルダ・スタックの内容です。 (context, デフォルトは無し)
mhe:
もし指定があれば、inc は他の仕事に加えて、MHE 記録ファイルを 作ります。 MHE は Brian Reid による MH の Emacs フロントエンドです。 初期バージョンは mh.6 の配布にも含まれています。 (profile, デフォルトは無し)
Alternate-Mailboxes: mh@uci-750a, bug-mh*
repl や scan に対し、これらのアドレスも自分自身である事を 知らせます。複数のメールアドレスを持っている場合に便利です。 これによって、repl は返信の際にどのアドレスを含めるべきかを決め、 また scan は、それが自分自身が出したメッセージかどうかを知ります。 つまり mh-format (5) で、関数エスケープ (mymbox) は、 ここに書かれているアドレスを全て自分自身であると判断します。 アドレスはコンマで区切り、ホスト名はそのメールボックスの公式ホスト名で なければなりません。 ホストに対するローカルのニックネームは公式ホスト名には置き換わりません。 それぞれのアドレスに対して、 ホストが書かれてないものは、全てのホストのそのアドレスが自分自身だと されます。 加えて、 アスタリスク (`*') はメールボックスとホストの両方の最後に置け、ワイルドカード として使えます。 (profile, default: あなたのユーザー名)
Aliasfile: aliases other-alias
ali、whom、そして send で使われるエイリアス・ファイルです。 これは `-alias file' オプションの代わりに使えます。 (profile, デフォルトは無し)
Draft-Folder: drafts
comp、dist、forw、そして repl で使われるデフォルトの ドラフト・フォルダです。 この指定は `-draftfolder +folder' オプションで置き換えられます。 指定されると、ドラフト・ファイルはこのフォルダ内のメッセージとして作られます。 `-draftmessage msg' が指定されるとそのメッセージ、そうでない場合の デフォルトは通常 `new' (comp コマンドが `-use' オプション付で 使われた場合のデフォルトは `cur')です。 ドラフト・フォルダを使うと、 同時に複数のドラフト・ファイルを存在させる事が出来るので、あるドラフトの 編集を中断して、別のドラフトを編集し、また元のドラフトの編集に戻るような事も 簡単に出来るようになります。 また、それら編集途中のドラフトは通常の MH メッセージとして、 全ての MH コマンド(show、scan、pick など)で 扱う事が出来ます。 ドラフト・フォルダが指定されていない場合は、ドラフト・ファイルは通常、 ユーザーの MH ディレクトリの下の `draft' というファイル一つになります。 (profile, デフォルトは無し)
Trash-Folder: trash
rmm で使われるデフォルトのゴミ箱フォルダ・ディレクトリです。 これを指定すると、MH コマンドで削除を行なうと、当該メッセージは このフォルダに移動します (このフォルダで削除すると実際にそのファイルを消します)。 指定されていない場合は、頭にコンマ(またはサイト依存のオプション SBACKUP の値) が付けられたファイル名にリネームされます。 いずれの場合も rmmproc が指定されていると、そちらが優先されます。 (profile, デフォルトは無し)
digest-issue-list: 1
forw にメーリングリスト list のダイジェスト(まとめ送り)の 最後に送られた巻の最後に送られた号を指定します。 forw で `-digest list' オプションが指定され、 `-issue number' が指定されない場合はこの値に1を足した値が使われます。 (context, デフォルトは無し)
digest-volume-list: 1
forw にメーリングリスト list のダイジェスト(まとめ送り)の 最後に送られた巻を指定します。 forw で `-digest list' オプションが指定され、 `-volume number' が指定されない場合はこの値が(1を足さずに)使われます。 (context, デフォルトは無し)
MailDrop: .mail
メールドロップがデフォルトと違う場合に、inc にそれを指定します。 これは環境変数 MAILDROP で置き換えられます。 (profile, default: /var/mail/$USER)
Signature: RAND MH System (agent: Marshall Rose)
send にメールで使われる名前を指定します。 これは環境変数 SIGNATURE で置き換えられます。 もし環境変数 SIGNATURE も このプロファイル・エントリも指定されてない場合は /etc/passwd の “gcos” 欄が使われます。 MH が UCI オプション付で構築されている場合は、 $HOME/.signature ファイルも参照されます。 この名前は send が “From:” ヘッダーを作る際に、その アドレス欄に付け加えられます。 このテキストにはアドレス自体は含めないで下さい。 (profile, デフォルトは無し)
File-Coding: ja_JP.EUC
MH プログラムがファイル(メッセージ等)やコマンド・ラインを読みとる際に 想定する漢字コードを指定します。また、ファイルに書き込む際の漢字コードも 指定します。この値は環境変数 MH_FILE_CODING で置き換え可能です。 (profile, デフォルトは無し)
Display-Coding: ja_JP.EUC
MH プログラムが端末に表示する際に出力する漢字コードを指定します。 この値は環境変数 MH_DISPLAY_CODING で置き換え可能です。 (profile, デフォルトは無し)
Process-Coding: ja_JP.EUC
MH プログラムがパイプに出力する漢字コードを指定します。また、パイプ から読み込む際に想定する漢字コードも指定します。 この値は環境変数 MH_PROCESS_CODING で置き換え可能です。 (profile, デフォルトは無し)
以下のプロファイル要素は MH プログラムが more (1) など他の プログラムを呼び出す時に使われます。 もしユーザーがこれらのプログラムを置き換えたいと望むなら、 .mh_profile にそれを書く事が出来ます。 デフォルトの値を例示します。
^fileproc:~^/usr/local/bin/refile
^incproc:~^/usr/local/bin/inc
^installproc:~^/usr/local/lib/mh/install-mh
^lproc:~^オプション MORE の値。または /usr/ucb/more
^mailproc:~^/usr/local/bin/mhmail
^mhlproc:~^/usr/local/lib/mh/mhl
^moreproc:~^オプション MORE の値。または /usr/ucb/more
^mshproc:~^/usr/local/bin/msh
^packproc:~^/usr/local/bin/packf
^postproc:~^/usr/local/lib/mh/post
^rmmproc:~^無し
^rmfproc:~^/usr/local/bin/rmf
^sendproc:~^/usr/local/bin/send
^showproc:~^オプション MORE の値。または /usr/ucb/more
^whatnowproc:~^/usr/local/bin/whatnow
^whomproc:~^/usr/local/bin/whom
もし環境変数 MH を定義すると、 MH プログラムが読むプロファイルを .mh_profile 以外にする事が出来ます。 もし環境変数 MH の値が絶対パスでない場合 (すなわち / で始まってない場合)、 それはカレント・ディレクトリからの相対パスと考えられます。 これは、MH が、絶対パスでないパス名をユーザーの MH ディレクトリ からのパスであると考えない数少ない例外の一つです。 同様に、 もし環境変数 MHCONTEXT が定義されていると、 通常のコンテクスト・ファイル(MH プロファイルで定義されている) 以外のコンテクストを指定できます。 MHCONTEXT の値が絶対パスでない場合、 それはユーザーの MH ディレクトリからのパスと考えます。 MH プログラムは他にも以下の環境変数を参照します。
MAILDROP : inc でデフォルトのメールドロップを指定します。
これはプロファイル・エントリ “MailDrop:” を置き換えます。
SIGNATURE : send と post にメールで使う名前を指定します。
これはプロファイル・エントリ “Signature:” を置き換えます。
HOME : 全ての MH プログラムにあなたのホーム・ディレクトリを 伝えます。
SHELL : bbl に走らせるデフォルトのシェルを指定します。
TERM : MH に端末のタイプを教えます。
環境変数 TERMCAP も参照されます。 特に、 これらは scan と mhl にどうやって端末をクリアするか、 そして端末の幅がどれぐらいあるかを伝えます。 これらは mhl に端末の行数も伝えます。
editalt : 再配布/返信元のメッセージです。
これは dist と repl で編集状態にある時、 再配布、あるいは返信されるメッセージを熟読できるようセットされます。 カレント・ディレクトリとメッセージが存在するフォルダが同じ UNIX ファイル・システムにある場合は、このメッセージは カレント・ディレクトリの “@” というリンク名でも 参照できます。
mhdraft : 現在のドラフトのパス名を示します。
これは comp、dist、forw、そして repl によって、 whatnowproc にどのファイルに対して、“What now?” と聞けば いいかを指定します。 加えて、 dist、forw、そして repl は、mhfolder もセットします。 さらに、 dist と repl は whatnowproc にドラフトと共にある もう一つのメッセージ(再配布、または返信されるメッセージ)を伝えるために mhaltmsg をセットします。 そして、 dist は whatnowproc にメッセージ再配布が起こってる事を伝えるため に mhdist をセットします。 また、 whatnowproc にユーザーが選んだエディタ(`-noedit' で打ち消されてない場合) が何であるかを伝えるために mheditor をセットします。 同様に mhuse が comp によって指定されます。 最後に、 dist、forw、そして repl は注釈付けをする際に mhmessages をセットします (さらに mhannotate と mhinplace も)。 この “What now?” と聞いてくるプログラムに対して、全ての情報を 環境変数で引き渡すというインターフェイスは凄い仕様だと思いませんか? この理由として、MH ユーザーは whatnowproc として 任意のプログラムを指定できるという点があり、標準のシェルでさえ指定できます。 その結果、これらの情報を引数リストとして引き渡す事が出来ないのです。
もし MH の構築の際に WHATNOW オプションをセットしてた場合で (確認するには MH コマンドに `-help' を付けて実行してみて下さい)、 この環境変数がセットされてた場合は、 コマンド refile、send、show、または whom に `msgs' 引数が与えられてない時には、 そのデフォルトのファイルは mhdraft になります。 これはデフォルトの whatnowproc で提供されているデフォルトの行動を 別のプログラムでも得たい場合に有用です。
mhfolder : 代わりのメッセージが含まれているフォルダです。
これは dist と repl で編集段階でセットされ、 再配布、あるいは返信されるメッセージを熟読する事が出来ます。 環境変数 mhfolder は show、prev、そして next でも mhl で使われる場合にセットされます。
MHBBRC :
もし環境変数 MHBBRC をセットすると、 bbc で読まれる電子掲示板情報ファイル .bbrc を別のファイルに する事が出来ます。 もし MHBBRC の値が絶対パスでない場合 (すなわち / で始まってない場合)、 それはカレント・ディレクトリからの相対パスと考えられます。
MHFD :
もし MH の構築の際に OVERHEAD オプションをセットしてた場合で (確認するには MH コマンドに `-help' を付けて実行してみて下さい)、 この環境変数がセットされてた場合は、 MH はこれを MH プロファイルを読み出し専用でオープンしている ファイル記述子の番号として考えます。 同様に、 環境変数 MHCONTEXTFD が設定されている場合は、 これを MH コンテクストを読み出し専用でオープンしている ファイル記述子の番号として考えます。 MH のこの仕様は実験的なもので、 MH の立上り時に可能な速度向上を調査しています。 この仕様を可能にするには、これらの環境変数を設定し、空でない状態にしなければ ならない点に注意して下さい。 もし MH の設定で OVERHEAD がセットされている場合、 MH プログラムが他の MH プログラムを呼ぶ場合には、これが使われます。 これらのファイル記述子は MH プログラムの実行の間中 クローズされませんので、 子プログラムはその恩恵を受けるかもしれません。 この方法は、安全にいくぶんかの速度向上が得られると考えられます。
^$HOME/.mh_profile~^ユーザーのプロファイル ^あるいは $MH~^が標準のプロファイルに代わる ^<mh-dir>/context~^ユーザーのコンテクスト ^あるいは $CONTEXT~^が標準のコンテクストに代わる ^<folder>/.mh_sequences~^<folder> に対するパブリック・シーケンス 全て。 mh(1), environ(5), mh-sequence(5) 無し。 全て。 mh.1 (オリジナルの RAND MH )や mh.2 (最初の UCI バージョンの MH )では、 書き込み可能なフォルダのカレント・メッセージはそのフォルダの “cur” というファイルに書き込まれていました。 mh.3 では、 書き込み可能性に関係なく全てのフォルダの カレント・メッセージの値は .mh_profile に書き込まれてました。 mh.4 以降の全ての MH のバージョンでは、 .mh_profile には静的な情報のみが含まれ、 MH プログラムがこれを更新する事はありません。 情報等の変化は全てユーザーの MH ディレクトリにある context ファイルに書かれるようになっています。 これには “Current-Folder” エントリと プライベート・シーケンスの情報を含みますが、 これだけに制限されている訳ではありません。 パブリック・シーケンスの情報はそれぞれのフォルダ内の .mh_sequences というファイルに書かれます。 mh.4 より前に使われていた形式をそれ以後の MH の形式に改めたい 場合には、 install-mh を `-compat' オプション付で起動します。 これは一般的に MH を “COMPAT” オプション付で構築した場合には 自動的に行なわれます。 .mh_profile で “context” エントリ(これは小文字でなければなりません)を設定する事で、 context ファイルのパスを変える事が可能です。 もしエントリが絶対パスでない場合(/ で始まってない場合)、 ユーザーの MH ディレクトリからの相対パスと考えられます。 結果として、 異なるコンテクスト・ファイルを使い分ける事によって、 複数のプライベート・シーケンス集合を持つ事が出来ます。 .mh_profile ではシェルのクォート処理のような事は出来ません。 すべての語はホワイトスペースで区切られます。 プロファイルのオプションとして、どういう種類の引数を置いたらいいかという 疑問があるかと思います。 これに明白な解答を出すためには、全ての MH プログラムの コマンドラインでの意味を思い出しましょう。 まず、矛盾するオプション(例えば `-header と `-noheader')が 複数指定された場合には、その最後に指定されたオプションが効果を持ちます。 つまり、先に指定したオプションは後で打ち消す事が出来る訳です。 これは、プロファイルでの指定はコマンドラインで打ち消す事が出来るという事です。 一方、メッセージ・シーケンス、ファイル名、フォルダといった他の引数は 同種の後で指定される引数でそれを打ち消す事が出来ません。 この事から、プロファイルにはオプション(とその引数)だけを書くのが安全だと 言えます。 もし MH プログラムを同じ引数で何度も何度も実行する事が分かっているが、 その引数はオプションではない場合、 この問題を解決するいくつかの解決方法があります。 最初の方法は、その MH プログラムへのソフトリンク(シンボリック・リンク) を $HOME/bin ディレクトリに異なる名前で作る事が挙げられます。 この時、プロファイルにその名前で新しいエントリを作り、その MH コマンドに指定したい引数を与えるのです。 MH コマンドは、自分自身の実行ファイル名(オリジナルの コマンド名ではない)のプロファイル・エントリを探します。 同様に、その MH プログラムを好みの引数で呼び出す小さなシェル・スクリプト を作ることも出来ます (この解決方法としては、リンクを作って、プロファイル・エントリを与える方が 好ましいでしょう)。 最後に、csh ユーザーは以下の形式でエイリアスを設定しておくという方法 もあります。
alias cmd 'cmd arg1 arg2 ...' この方法では、ユーザーはシェルに長い打ち込みをする事を避けることが出来、 MH コマンドに安全に引数を渡せます。 しかし、いくつかの MH コマンドは 内部で他の MH コマンドを呼び出しますが、この場合、プロファイルは読まれ ますが、このエイリアスは最初のコマンド呼び出しを越えては効かない事を 忘れないで下さい。