FreeSoftwa 「 e の世界 いしたことをするものではありませんが、ちょうど背中が ます。たとえは、 かゆいときのあと 1 センチに相当する機能ですので、その /test/a : M うち使う日もあるのではないかと思います。 では、ごゆるりとご覧ください。 と入力すれば、ヘッダでも本体でもどこかに、、 tes€' や 、、 Test" という文字列をもった記事すべての表示をあと回 己事選択レベルのコマンド しにすることができます。あるいは、 S セープ先 /test/a: s testart W セープ先 と入力すれば、同様にしてどこかで、、 test 〃といっている セープ用コマンド。、、 s セープ先〃、、 w セープ先〃と同 しですが、呼び出されるシェルか環境変数 SHELL で指 記事は全部、 - 、、 testart" に書き込まれますし、 定したものになります。 /test/aK: s testart ! ! コマンド シェルエスケープ。これは ! の特別版で、シェル呼出し とすれば、 $/test/a:s testart" という行が局所削除ファ にはちがいないのですが、現在ディレクトリが % P にな イルに加わり、以後そのニュースグループにアクセスする ります。 たびにそのコマンドが実行されることになります。なお、 、、厂 / 〃はすべての記事を指定したのと同しになります。 (Verbose restart) 全ヘッダの表示。基本的には R と 己事範囲指定コマンド群 同しで現在記事を再表示するコマンドですが、一 h スイツ 複数記事に対するコマンド実行。上記のコマンドに似て チによって隠れていたヘッダも全部姿を現します。 いますが、こちらのはうはパターンではなく記事番号で / パターン / 修飾子 . コマンド群 記事を指定します。 パターン合致記事に対するコマンド実行。これは、、 / パタ 指定方法は、 ーン / 修飾子〃の拡張で、それでみつけた記事に一連のコ マンドをまとめて実行してしまおうというものです。 己事 こで、ちょっと修飾子のおさらいをしておきましよう。 己事ー記事 ( 修飾子なし ) サプジェクト・ヘッダを走査する。 ヘッダ全部を走査する。 h a 記事全体を走査する。 r すでに読んだ記事も走査する。 c 指定パターンの大文字と小文字を区別する ( デフォ ルトは区別なし ) 。 これらに加えて、、 K クという修飾子が使えます。修飾子 K は、このあとに説明する K コマンドとは ( 意味は似ていま すが ) 異なるものです。これを、、 / パターン / ' ′のあとにつけ 削除記事の指定。 k コマンドは、現在記事と同しサプジ ると、それ全体 ( 、、 K 〃自身を除く ) が局所削除ファイルに追 ェクトをもつ記事をすでに読んだことにしてしまうコマ 加されて、削除などの対象となる記事を規定することにな ンドです。前回の説明で、くれぐれも大文字をタイプし ります。 ( 詳しく ( ゞ K コマンドを参照してください ) 。 てしまわないようにと書いたのは、この K コマンドがあ るからです。これをタイプすると、今ある記事を表示し 己事に対して何かをおこなうコマンドを添えてやると、 パターンが見つかった記事全部に対してそれが実行され ないだけでなくサプジェクトが次に述べる局所削除ファ - 三ロ で、、、記事〃には記事番号、 〃 ( 現在記事 ) 、、ゞ ( 最後 の記事 ) が使えます ( ただし、、、 $ コマンド群 ' を実行し ようとすると、、ゞをタイプした時点で最後の記事を読 みにいってしまうので、注意してください ) 。たとえば、 〃は最初の記事から現在記事までのサプジェクト を全部表示します ( いちばん若い記事番号が実際には何 であろうと、これでうまくいきます ) 。 1 三ロ 85 UNIX MAGAZINE 1991.2
FreeSoftwa 「 e の世界 プ全体の状態を表す変数です。 これらは、記事そのものではなく、あるニ 現在ニュースクループの状況、名前 ュースグノレー 現在ニュースグループの未読 (unread) 記事の数。 %U 現在ニュースグループの未読記事の数。現在記事は含み ません。新しい記事を読む際に、あといくっ残っている かを表示するのに使われます。 %c 現在ニュースグルーフ (current newsgroup) の名則。た とえは、、、 fj/comp/misc 〃のようなディレクトリ表現形 式になります。 ニュースグループの格納ディレクトリを表しています が、ニュースグループの論理構成になっているので、自 分のファイルとしてセープする際のディレクトリとして 用いれは分類がしやすくて便利です。 現在ニュースグループの名前。たとえは、、、 fj. comp. misc" のような . newsrc で用いられている形式になり ます。すべてのニュースグループの記事を単一のディレ クトリにセープしたいときなどに便利です。 投稿、返信の際に用いられる情報 以下の変数は、記事や返信を作成するときに投稿先や送 付先などを設定するのに用いられるもので、現在記事のヘ ッダなどから引用された情報が入ります。 ヘッダひと揃いが入っているファイルの名前。 rn 自身は メールの送付や記事の投稿を扱わす、そのために独立し た別のプログラムが呼ばれます。ヘッダ ( 引用記事を含 む ) は、メールや記事を生成できるように % h で示される ファイル ( 通常は % . /. rnhead ) にいったん格納され、そ のファイル名が送付 / 投稿プログラムに渡される仕掛け になっているのです。ヘッダファイルの書式は、環境変 数 MAILHEADER 、 NEWSHEADER 、 CANCEL- HEADER で指定できます。 78 関連記事 (FoIIowup) の投稿先 (Newsgroups)0 現在記 事のヘッダと同し投稿先か、関連記事の投稿先 (Follow- up ー To ) が指定されている場合はそちらになります。 参照表示文字列 (reference indication) 。 F コマンド や R コマンドで記事を参照 ( 引用 ) する際、各行の先頭に は %I に設定されている文字列が挿入され、その行が引 用した部分であることを表します。通常は、、〉クですが、 スイッチで、、一 F 文字列〃のように変更できます。 関連記事のヘッダに現れる参照記 (References)—覧 表。現在記事のなかの参照記事一覧と現在記事自身の識 別子から構成されます。 現在記事の識別子 (Message-ID)0 ホスト名。 rn 使用者のログイン名。環境変数 USER または LOG- NAME の値が入ります。 %N rn 使用者の名前。環境変数 NAME で設定されます。 % 0 rn 使用者の所属機関 (Organization)0 これも環境変数 ORGANIZATION でデフォルトの設定を変えられま す。記事やメールのヘッダに使われます。 %S サプジェクト (Subject) ヘッダから、、 Re 〃を 1 つだけ削 ったもの。なせ、、 Re : 〃をとるかというと、関連記事を投 稿するときには伝統的に元の記事のサプジェクト・ヘッ ダに、、〇〇に関して〃という意味の、、 Re : 〃という文字列 を挿入します。しかしながら、その記事についてさらに だれかが関連記事を投稿するというようなことが続けは・、 サプジェクト・ヘッタ、が、、 Re : 〃だらけになってしまいま UNIX MAGAZINE 1991.2 は、関連記事のサプジェクトで、、 Re : 〃の数が減らないよ は・、その後の操作が簡単になるのです。 1 つだけとるの めには、 % S のように、、 Re : 〃をとり去った文字列があれ え、あればそのままにする必要があるわけです。そのた す。そこで、元の記事に、、 Re : クがなければこれを付け加
イルに登録され、以後はそのサプジェクトの記事が画面 に出てこなくなるからです。 局所削除ファイルの編集。局所削除ファイルは、あるニ ュースグループの記事を読む前に全記事を走査し、指定 に合致する記事に対してなんらかのコマンドを実行する ものです。 書式はソバターン / 修飾子 : コマンド〃で、これを 1 行 につき 1 っすっ書きます。たとえは、、、 / natto / j 〃はサプ ジェクト・ヘッダに、 \natto 〃や、、 nattou" などの文字列 をもった記事を削除 ( 読んだことに ) するものです。 逆に、その話題についてのみ読みたいときには、、、厂 / ・〃 とソ natto / m 〃と書くことができます。つまり、いった ん全部の記事を削除した後、再ひ望みの記事だけに、、未 読〃の印を付けるのです。 このファイルが読まれたときに、そこに列挙しておくこ とによって新たなスイッチを指定することができます。 また、 X で始まる行はニュースグループにアクセスする ときではなくそこを抜けるときに実行されるので、スイ ッチ指定をデフォルト値に戻すときなどに便利です。 局所削除ファイルは % p / % c に置かれ、 rn が、、 THRU 番号クという行を挿入します。これは、何番目の記事ま で処理したかを記録するものなので、再び全記事に処理 を施したい場合には消してしまってかまいません。 ニュースグループ選択レベルのコマンド 0 / ヾターン ニュースグルーフ。指定。 rn をシェルから呼び出すときに は読み込むニュースグルーフを指定できますが、このコ マンドは rn のなかから同様のことをするものです。 0 sources sys" は、、、 rn sources sys" と同し効果があ ります。指定したニュースグループに未読の記事がなく なるか、引数なしの 0 コマンドを実行すると、その指定 は解除されます。また、新たな指定をするとその前まで の指定は解除されます。 ニュースグループ名 ニュースグノレープの移重力。 . newsrc のニュースグノレーフ の登録順序、すなわち表示の順序を変史するのに使うコ マンドです。引数がなければ、現在ニュースグループを 指定したものとみなされます。これを実行しようとする 86 FreeSoftwa 「 e の世界 / パターン / r と、「どこに ? 」と訊かれます。これに対する指定には以 下のものがあります。 先頭。 $ 最後。 ニュースグループ名 数字数字番目。 直後。 十ニュースグル 直前。 ープ名 L h 孑旨定の則に へノレフ。。 . newsrc の内容を表小 全ニュースグループの検索。ソハターン〃については、 前回を参照してください。ただし、それで表示されるニ ュースグループは未読記事を含んだものにかぎられてし まいます。すでに読んでしまったニュースグループも検 索対象にしたい場合は、後ろに、、 / r 〃 (read) を添えま ! ! コマンド 在のディレクトリが % P になります。 シェルエスケープ。記事選択レベルの場合と同様に、現 す。 UNIX MAGAZINE 1991.2 1 行ごとの書換え。次の記事を表示する際、はしめに画 れたようです。 す ) 。画面消去がうまくいかないディスプレイ用に設けら す ()e を指定していないときのページャと同し動きで イッチは前の記事の直後から、スクロールして表示しま たん画面を消去して第 1 行目からはしめますが、このス 画面消去オフ。通常、次の記事を表示するときにはいっ スイッチ ルは % p に置かれます。 ンドが該当記事に対して実行されます。広域削除ファイ ループにアクセスするたびに評価され、指定されたコマ ースグループに適用されます。実際には、各ニュースグ ュースグループに対応するのに対して、こちらは全ニ 広域削除ファイルの編集。局所削除ファイルが 1 つのニ
F 「 eeSo 代 wa 「 e の世界一朝 こちらは私有です。記事を自分でセープするためのディ うにするためです。これに対して、、、 % s 〃はサプジェク レクトリで、普通は /News です。、、一 d ディレクトリ名〃 トそのものをとり出したいときに使います。 のスイッチ指定によって好みの場所に変えられます。 rn は、起動後に % p ー 0 見在ディレクトリを移します。 メールの送付先 ( 、、 To : 〃ヘッダの内容 ) 。現在記事の 、、 From: 、、 Reply-To:" のヘッダから生成され、、、@ク (Original working directory) rn を起動したディレク を用いたインターネット・アドレス形式になります。 トリ。、、 % p 〃が固定なのに対してこれは rn を起動するご とに異なるので、より柔軟にセープ・ディレクトリなど メールの送付先。こちらのはうは経路へッダ ( Path : ) か を選びたいときに使います。 らとり出されたもので、、、 ! 〃でつながった UUCP 形式 になります。 ホームディレクトリ。環境変数 HOME の値をもちます。 己事、ライプラリの格納場所 (Destination used before4) 前回に記事をセープした これらの変数は、届けられた記事が格納されているディ ファイル名。、、 s % b 〃などと入力すれは・ 1 回前にセープ レクトリ / ファイルと、ニュースシステムや rn のためのラ したときと同しファイルに記事が書き加えられます。 イプラリ格納ディレクトリを示します。 現在記事のバイト長。 (Public news SP001 directory) 記事が格納されている %B (Byte offset ) 記事の先頭から実際にセープする部分ま ディレクトリ。 nntp で記事を読むシステムでなければ、 でのバイト数。 S と s コマンドはこの変数を 0 に、 W と 通常は /usr/spool/news です。この下にニュースグル w コマンドは記事本体まで ( おもにヘッダ部を含む ) の ープの構成にしたがってサプディレクトリが用意され、 バイト分に設定します。 % B は、これらのコマンドが呼 それぞれに記事が格納されています。 び出す外部プログラムを別のものと替えるときに使うこ とになるでしよう ( 環境変数 MBOXSAVER 、 NORM (newsgroup directory) 現在記事が格納されているデ SAVER 、 PIPESAVER の説明を参照 ) 。 ィレクトリのフルバス名。 %P/%c と同値です。 %x 実行環境設定情報 ニュース・ライプラリ・ディレクトリ。ニュース管理の 以下の変数は、 rn が環境設定を読み込むとき、または rn ためのライプラリ・プログラムや記録ファイルなどが置 に読み込ませたいときに使います。 いてあるところです。 rn ライプラリ・ディレクトリ。 rn に特有なライプラリ・ フログラムやシステム・デフォルト設定ファイル ( INIT ) が置いてあるところです。 設疋ファイル ( . newsrc 、 . rnmac など ) が置いてあるデ ィレクトリ。 rn は、起動時にこのディレクトリで設定フ ァイルを探します。設定ファイルがみつからないと、使 用者が rn をはしめて使う場合とみなして前回に紹介し たような初心者用のメッセージを出力します。環境変数 DOTDIR によって変史されていなけれは、ホームディ レクトリが % . の中身になります。 セープ関連情報 以下の変数は、おもに記事をセープするときに使えます。 (private news directory) 私有ニュース・ディレクト リ。 % P が公共ニュース・ディレクトリなのに対して、 4 この語呂合せは、筆者の想像である。 79 UNIX MAGAZINE 1991.2
FreeSoftware の世界ー朝 %a % 置換 記事 (ariticle) 番号。記事をセープするときのファイル 名で、関連記事や返信などを作成するときに使われます。 % 置換は、 % で始まるある種の変数を使った文字列の置 %A フルバスによる記事のファイル名。これは記事が格納さ 換えで、 C 言語の printf( ) に似ています。 れているところで、 %P/%c/%a と同等です。 これらは rn によって値が入れられ、使用者はたいがい マニュアルには、、、 Eunice システムにおいて LINKAR- 参照のみ可能になっています。この使い方ですが、たとえ T オプション ( コンパイル時に設定できる ) が設定され は記事をセープしたいときに記事選択 ( あるいはページ ていると、 %P/%c/%a は現在ニュースグループでの記 ャ ) レベルで、 事の名前を返すが、 % A は実際の ( ファイル ) 名を返し、 記事が複数のニュースグループに投稿されている場合、 両者が異なることがある〃とただし書きがしてあります。 ープと記 と入力すると、そのとき読んでいるニ ュースグノレ 事番号に合わせて、 己事のヘッダに指定されている配布先 (Distribution)0 s -/News/fj / ax 0 ce / 256 その記事をどれくらいの範囲に配布するべきかが指定さ れている部分です。 のように解釈されます。また、いつもこのようなセープの 仕方をしているのなら、環境変数 SAVEDIR に、、 % p / % %f ヘッダに指定されている投稿者 (From) 、返信先 (Reply c 〃、 SAVENAME に、、 % a 〃を設定しておけば、、、 s 〃に続 ー T 。 ) が指定されている場合はその指定先。 けて改行キーを押すだけで同等の効果が得られます 2 。 同様な変数に % t がありますが、純粋なアドレスのみ 以下に示す % 置換は複数文字コマンド ( 、、 ! 〃、、、 s 〃、、 / 〃 の %t とは異なり、 % f には、、 From : 〃または、、 RepIy- など ) の引数として使えますが、コマンドを入力している途 To : 〃から右側のすべての文字列が入っています。 中でエスケープキーを 2 回叩けば実際の値がその場で展開 されます。これは思ったとおりに置き換えられるかどうか %n ヘッダに指定されているニュースグルーフ。。 を確かめるのに便利で、たとえば、 %r s %p/savefile 参照記事へッ Y(References) に記載されている通信文 識別子の最後のもの。 とタイプしたところでやってみると、 この識別子が指す記事を親記事と呼びます。 s /usr/home/st a11men/News/s avef ile %s 話題へッダ ( Subject ) の内容から、、 Re : 〃と、、一 ( nf ) 〃 3 を のように % 置換後の文字列が表示され、さらに入力を続け すべて削ったもの。 ることができます。 % [ ヘッダ名 ] では、どのような % 置換があるかをみていきましよう。 、、ヘッダ名〃ヘッダの内容。たとえば、、、 % [distri-bution] 〃 現在記事の名前、ヘッダ情報 と書けは % D と同値になります。彳あの条件マクロなど と組み合わせて使えます。 これらは、いま読んでいる記事に関して設定されている 通常、ヘッダは、、 Distribution:" のように大文字で始ま 変数です。 りますが、 rn では綴りが合っていれは大文字 / 小文字の 別なく認識します。 3 第 (nf)" という印には歴史が詰まっているのだが、 二一 1 ロ 2 ー / スイッチがあらかしめ設定してあるシステムでは、 's 改行をだけ人力すれ ば、 % p / % c / % a にセープされるのがデフォルトになっている。詳しくは、「環 境変数」の SAVEDIR 、 SAVENAME 、さらに「コマンドとスイッチ ( 補遺 ) 」 を参照。 こでは割愛する。 77 UNIX MAGAZINE 1991.2
FreeSoftwa 「 e の世界 設定が書き込まれたファイル名と解釈されます。 Wall KILLLOCAL 局所削除ファイルを置くディレクトリ。局所削除ファイ 氏は、たくさんの環境変数を利用したいがそのすべてを ルのほうは、ある 1 つのニュースグループて特定の記事 環境中に置きたくないとき、またははかのプログラムが に関する設定をするためのファイルです。 用いる同し環境変数とは値を変えたいときに一 E スイツ C$p/% c/KILL] チを用いるように勧めています ( 「コマンドとスイッチ ( 補遺 ) 」を参照 ) 。 表示制御変数 [ なし ] 画面には記事のほかに、何種類かの情報が表示されます 書込み用ファイル が、これらはそうした表示の書式を規定するものです。 こに挙げるのは、セープその他の目的でファイルに書 き込む際のファイルやディレクトリを指定するものです。 SUBJLINE サプジェクトの表示書式。記事選択レベルで = コマンド を叩いたときに出る表示の書式です。通常は、サプジェ SAVEDIR クトヘッダの内容を示します。 [%s] 己事セープ・ディレクトリ。記事をセープする際、出力 先ディレクトリの指定がない場合に使用されます。これ FIRSTLINE が設定してあると、 -d スイッチが指定してあってもセー 記事を画面に表示する際に最初に現れる行。デフォルト 定義にもあるように、通常は、記事番号、未読記事の プ用コマンドはデフォルトでこのディレクトリのファイ 数、再度読むために印を付けた記事の数、 ルに書き込めます。ただし、その場合でも % p の参照値は ニュースグノレ ープ名です。 ー d で指定したままです。 [Article %a % ( % U % M ! 二 00 $ ? ()U more% ( % M ! 二 0 $ ? ・ 十 %M Marked to return) \ ) ) in %C: ] スイッチ、、一 / クが指定されている場合、 %p/%c スイッチ、、十 / 〃が指定されている場合、 %p MAILCALL メール着信表示。 rn 使用中にメールが届くと画面の左下 に知らされますが、これはその際のメッセージです。 SAVENAME [ (Mail) ] 記事セープファイル。記事をセープする際、出力先ディ レクトリしか指定がなかった場合に使われます。 送出ファイル書式 スイッチ、、一 / 〃が指定されている場合、 %a rn 使用中に送るメールや記事などの書式は、以下の変数 スイッチ、、十 / ' ' が指定されている場合、 O/OAC によって制御することができます。 MAILHEADER r 、 R コマンドでメールを送る際に MAILPOSTER に KILLGLOBAL 渡すヘッダの内容。これにかぎらす、ヘッダの書式はい 広域削除ファイルを置くディレクトリ。広域削除ファイ ったん % h が示すファイルにはき出され、その後しかる ルというのは、全ニュースグループをとおして特定の記 べきプログラムがそのファイルを扱います。 事に関する操作を設定しておくファイルです ( 広域 / 局 所削除については「コマンドとスイッチ ( 補遺 ) 」を参 胆 ) To : %T Subjcet : %(%i=-$? : Re : %S C$p/KILL] Newsgroups : 加 In-Rep1y-To : $i) % ( % Creferences] ! =A$?References\ : % [references] )Organization: % 0 Cc : 111 一口 7 感 - だ + だのどちらがデフォルトになっているかは rn 作成時の設定により異 るので、 & コマンドなどで確認するとよい。 82 UNIX MAGAZINE 1991.2
FreeSoftware の世界 YOUSAID ロエ Bcc : \n\n R コマンドで引用した記事の直前に付けられる出典の NEWSHEADER [ln article % i you write: ] f 、 F コマンドによる関連記事のためのヘッダ。 F0110 up ー TO : Rep1y-To : (%N) ) Sender: % ( 粗 $ ? : References : Expires : Summary. Subject : %(%S=A$?%"\n\nSubject : " :Re : %S) Newsgroups : % ( $ ? % C : %F) Distribution: %(%i=A$?%"\nDistribution: キャンセル記事情報ファイルの書式。 C コマンドで記事 CANCELHEADER CIn article %i %f writes: ] 書式。 F コマンドで引用した記事の直前に付けられる出典の ATTRIBUTION Keyword: \ Ⅱ \ Ⅱ Org田112at 土 0 豆 : % 0 ャンセルがおこなわれます。この変数は、それらの情報 ニュース管理システムの手に渡り、そのシステムでのキ けの情報がキャンセル要求とともに配布先に配られて各 をキャンセルすると、実際にはその記事を識別できるだ の書式を規定します。 Newsgroups : 加 Subject : cmsg cancel References : 7 Rep1y-To : 粗 ( ) Distribution: Org観lzat 土 on : % 0 %i 8 なお、デフォルトの条件マクロのテキスト中に 〃がエスケープされすに使 われているところがある。しつは、いったん使われたメタキャラクタは、次に 出てきたときにはメタキャラクタ ( テキストの切れ目 ) としては扱われない。こ の例のように、いったん第 : 〃が出てきたあとは、同し条件マクロのなかで感 がエスケープなしで使われてもテキストの一部と解釈される。ただし、慣れな いと条件マクロはかなり読みづらいので、まめにエスケープしておいたほうが 無難だろう。 UNIX MAGAZINE 1991.2 %i cancelled from m. 呼出しプロクラム いくっかの処理は rn が直接おこなうのではなく、別の プログラムを呼び出すようになっています。以下に挙げた 変数は、そうした場合にどのプログラムをどのように呼ぶ かを指定するものです。 MBOXSAVER メール形式セーププログラム。記事をセープする際、 rn はメールと同し書式 (mailbox format ) でセープするか、 と訊いてきますが、それに、、 y 〃と答えるとこの変数の設 定がシェルに渡されます。 ただし、指定されたファイルがすでに存在している場合 は自動的に同し書式が選はれ、問合せはされません。ま っている。この性質を利用して、 w や W コマンドはデフォルトではパイプを使 指定 C くファイル名つをプログラムやコマンドより前に置いてもよいようにな 9 ご存しの方も多いと思うが、 ( 筆者の知るかぎり ) sh 、 csh などでは入力ファイル [RnmaiI -h %h] ケンスです。 ます。つまり、返信を書いて送るためのコマンド・シー メール送付プログラム。 R や r コマンドによって呼はれ MAILPOSTER [%(%B二0$? く %A:taiI + %Bc %A い %b)9 わります。 この場合、 % b が使用者の指定したプログラムに置き換 プログラムに送るためのシェルコマンド・シーケンス。 プログラム〃などのように、パイプを通して記事を別の パイプ型処理プログラム。、、、プログラム〃または、、 w ー PIPESAVER C%X/rorm. saver %A %P %c %a %B %C "%b") たち ) で記事をセープするためのシェルプログラムです。 通常形式セーププログラム。、、通常の〃書式 ( 記事に近いか NORMSAVER "From. %T %'date"'] C%X/mbox. saver %A %P %c %a %B %C %b ・ れメール形式と通常形式が強制的に選ばれます。 た、一 M かー N スイッチが指定されている場合もそれぞ っていない。 83
FreeSoftwa 「 e の世界 UNIX MAGAZINE 1991.2 ¯V いる範囲にとどめる。 發細にすぎるのと改変の可能性を考慮して、 こではマニュアルに記載されて 11 この条件を確認するために、ついにソースを読んでしまったが、すこしばかり 環境 (environment) 変数の設定。 rn に対する環境変数 ー E 環境変数 = 値 にもとづいておこなわれます 11 。 いるかどうかが判断されるだけで、更新自体は別の条件 ありません。そのタイミングで更新すべき条件が揃って は、指定数の記事が表示されるごとに更新するわけでは を、表示された記事の数によって指定します。実際に 事の番号などの ) 更新をどれくらいの頻度でおこなうか . newsrc のチェックホイント指定。 . newsrc の ( 既読記 ー C 記事数 だろうか、などと不安になるときにどうぞ。 いいが反応が遅く、いったいほんとうに、、 y 〃と打ったの ドも復唱するようになります。コマンドをタイプしたは すが、このスイッチが指定されると rn は 1 文字コマン ンドが画面に現れるのは複数文字コマンドの場合だけで (verify) コマンド確認モード。通常は、タイプしたコマ されているかもしれません。 よっては、 rn 作成時にこのスイッチがデフォルトで指定 送速度で rn を使うときのためのものです。システムに らのメッセージや質問がたいへん短くなります。低い転 (Tersemode) 簡潔表辰このスイッチによって、 rn か 示されます。 指定されているものを除いて、この値に関係なく全部表 よって、 rn 自身が設定しています。ヘッダ部分は、 -h で しめに何行表示するかを設定します。通常は転送速度に 初期 (initial) 画面長の設定。記事を表示するときに、は -i ラ数 できない位置を指定すると、最下行になります。 定します。デフォルトは gl で、画面の最上行です。表示 かから捜し出した行を画面の何行目に表示するかを指 検索文字列を含む行の表示位置。 g コマンドで記事のな -g 行位置 指定してあるときのみに有効です。 レイの種類によっては、できないこともあります。 -e を 面を消さすに 1 行ごとに上書きしていきます。ディスプ の設定をするためのスイッチです。起動時に設定しても いいし、 rn 実行中に、、 & ー E 環境変数 = 値クとすることも できます。もちろん、あらかしめシェルに対して設定し てあっても rn にとってはまったく同しことです。いく つもの設定をしたいときは、 —EVISUAL=/usr/10ca1/bin/nemacs 一日一化 = 7 に L -EDOTDIR=%p のように、何回も -E を指定すれば大丈夫です。設定され た環境変数は、すべて rn が呼び出すプログラムにも受 け渡されます。 セープ先の設疋。このスイッチを指定すると、 S AV E D I R のデフォルト値が % p/ % c に、 SAVENAME が %a に設定されます。また、代わりに 、、十尸と設定すると、それぞれ % p と % C になります。 rn 作成時にこのどちらかが設定されているはすですの で、 & ( 引数なし ) で確かめてみてください。あくまでデ フォルト値なので、 SAVEDIR や SAVENAME を指 定すれはそちらが優先されます。 これで私もエキパート ? すっかり長くなってしまいました。 rn の機能があまりに も多く 12 、またコンパイルの際のパラメータ設定の自由度 があまりに高いためです。 もしここに書かれていることを日常的にしている人があ れば、その人は間違いなく rn の変人に近い上級者と呼ん でいいでしよう。そうでない人は、この記事を読みながら ひとつひとつ自分なりの設定をしてみてください。真の変 人は、自分のニュースリーダを perl あたりで作ってしまっ ていることでしよう。 rn 上級者は、こまで読んでまだ説明されていない機能 があることに気がつくと思います。しつは、ほんのすこし だけ、しかしとてつもなく凝ったことをしたい人には必要 かもしれないことが、説明されすに残っています。それが 何か知りたい方は・・・・・・これだけは言うなと念を押されてい たのですが、マニュアルを読んでください。 12 先日、別のニュースリーダ nn のマニュアルを横から見て、その解説記だけ は絶対書くまいと思った。 87
FreeSoftwa 「 e の世界一⑩ % { 環境変数 } % { 環境変数ーデフォルト } その他 はスペースに置き換わります。 標準出力を取り込むときに使います。出力中の改行文字 指定したコマンドの出力結果。こちらは、プログラムの % ' コマンド ' 境変数をマクロに取り込むときなどに使います。 環境変数の値。未定義の場合は、、デフォルト〃。種々の環 をテキストに入れる場合は、、、 \ 〃でエスケープしてくだ りに否定を表わす、、ドも使えます。 が、その場合は””を指定したのと同しです。、、 = 〃の代わ トになります。非成立時テキストはなくてもよいのです すれは成立時テキスト、そうでなけれは非成立時テキス 条件マクロ。この値は、条件テキストがパターンに合致 % 條件テキスト = パターン ? 成立時テキスト : 非成立時テキスト ) キーポードから文字列を入力し、これに置き換えます。 その場での入力。画面に指定したプロンプトを出力して % ”プロンプト” 種類があります。 rn の現在モード。上述の条件マクロで用います。以下の M R groups?" あるいは同様の質問が出ている状能 ・、し、 0 記事をセープしようとして、、、 Use mailbox for- mat?' あるいは同様の質問が出ている状態。 過去にいったん購読を中止したニュースグループを 復活させるとき、、、 Resubscribe to this news- group?' あるいは同様の質問が出ている状賤 1 n a P A C D (lnitializing)o 起動時の初期設定中。 (Newsgroup selection level) 5 。 フ。選択レベル。 (Article selection level) 5 。記事選択レベル。 (Pager level) 5 。ページャレベル。 新しいニュースグループを登録するかどうかについ て、、、 Add this newsgroup?" あるいは同様の質問 ニュースグノレー 起動時に rn が無効と判断したニュースグループ ・ e い 0 の質間が出ている状能 直後で、、、 Do you really want. (Catchup confirmation)o 、、 c 〃 バ、 0 が出ている状能 コマンドを叩いた bogus news- ア′あるいは同様 が . newsrc にみつかり、、 \DeIete 5 各レベルの詳細は、前回の記事かマニュアルを参照。 80 なお、 rn はコンパイル時の設定にかなり自由度があるた め、使用する rn によってはここに挙げた以外の質問文 が現れる可能性があります。 %M M コマンドによって再度読めるように印を付けられた (Marked) 記事の数。マニュアルにも書かれているよう に、現在のニュースグループ内で何回 M コマンドが使 われたかを数えているので、次のニュースグループに移 るときに、 SReturning 5 Marked articles... 〃などと 表示されたとしても、印を付けた記事の数はそれより少 ない可能性もあります。 実行中の rn のプロセス番号。 。。パーセント記号のエスケーフ。。 修飾子。これを使って、 % 置換の値の最初の文字を大文 字にすることができます。たとえば、 %C が、、 fj. rec. food 〃だとすると、 % C は、、 Fj. rec. food 〃になります。 修飾子。最後のソ〃の直後の文字を大文字にします。た とえは・、 % c が、、 fj / rec / food 〃だったとすると、 %-c は 、、 fj/rec/Food" になります。 rn が扱う環境変数には、以下のものがあります。 rn のふ るまいを好みに合わせて調整するには、 % 置換をうまく使 ってこれらの変数を設定していくことでおおむね達成でき ます。設定はシェルの初期設定ファイルに書いておいても よいし、 -E スイッチで rn に渡してやることもできます ( 彳あの「コマンドとスイッチ ( 補遺 ) 」を参照 ) 。 それぞれの項には [ ] 内にデフォルト値を書き添えてあ 環境変数 UNIX MAGAZINE 1991.2
F 「 eeSo 代 wa 「 e の世界一⑩ NEWSPOSTER クロ きますが、あらかしめ定義ファイルに設定しておくのが普 マクロ定義は rn の使用中に & & コマンドを用いてもで 解釈させるためのものです。 タイプしたあるキーシーケンスを、別のキーシーケンスに rn のマクロは、原則としてコマンドを入力できるときに C/usr/spool/mail/%L] CALL が画面に表示されます。 、こに新しいメールが届くと、 MAIL- 指定します。 郵便箱。メールが届いているかどうかを監視する場所を MAILFILE その他 Cinews -h く % h] 使うべきシェルプログラムを設定します。 キャンセル用プログラム。記事をキャンセルするときに CANCEL いて投稿するときに呼ばれます。 [Pnews -h %h] 記事投稿プログラム。 F や f コマンドで、関連記事を書 通だと思います。 rn は起動時に % /. rnmac か環境変数 / C %Ckn=[ap] ?%(%"\nAre you sure to cancel this article? "=ACYy] ?C: 既 ) :h) この場合、現在モードが記事選択レベルかべージャレベ ルのときに、、 C 〃を入力すると ( キャンセルを意図してい る ) 、、、 Are you sure to cancel this article? 〃という質問 が画面に現れ、 Y か y で始まる文字列を入力すればそのま まキャンセル、それ以外の文字列だと画面が書き直される だけになります 10 。上記以外のモードでは C というコマン ドは存在しないので、代わりにヘルプメッセージが出るよ うになっています。 入力文字列は定義を読んだ段階で評価されてしまいま すが、この例で分かるとおり、置換文字列はマクロの実行 時に評価されます。そのため、値か動的に変わる % 置換と いう仕掛が活かせるのです。 さきほど、定義の右側にある文字列はマクロ展開されな 10 画面の書き直しに特別な意味はない。ほかのコマンドを思いつかなかっただ け。 84 、 RNMACRO に指定されているファイルを読み、以後はそ コマンドとスイ、、チ ( 補遺 ) 解釈されません。 いう意味で、、、 w save ー dflt 〃と書いても字義どおりにしか ) クは別のマクロを参照しろと いうまでもなく @s s (@save_dflt-) @w w (@save_dflt つ @save-dflt p/junkbox 次の書き方もできます。 意識してマクロ展開をさせるのはかまわないということで、 いと述べました。これは定義のループを避けるためですが、 定義できます。 当にいいの ? 」と確認させたけれは、次のようなマクロが 別の例として、キャンセル・コマンドを叩いたときに「本 ファイル名展開も使用可能です。 ュ展開、制御文字展開が適用されます。もちろん、、、 ~ 〃や マクロ定義にも % 置換、 % 置換をとおしたバックスラッシ 入力したときに y コマンドと解釈されるようになります。 この例では、、、 y 〃を入力したときに n コマンド、、、 n ' ′を をしても、無限ループには陥りません。 対するコマンドと仮定されているので、以下のような定義 は定義の一部になります ) 。右側に置かれた文字列は rn に 行と、、 # 〃で始まる行は、読みとはされます ( 途中にある、 書式を & & に続けて書いてやれはだいしようぶです。空白 のように書きます。実行中に定義する場合も、これと同し く入力文字列〉く置き換わるべき文字列〉 1 行に れにしたがって入力文字列を解釈します。定義の仕方は、 コマンドとスイッチに関しては前回にも触れましたが、 全部をお話ししたわけではありません。そこで、 遺として残りのいくっかを説明します。 まあ、だいたいた UNIX MAGAZINE 1991.2