[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. グループバッファー

グループバッファー (group buffer) は有効なグループを全部 (あるいは 一部を) 一覧表示します。これは Gnus を起動したときに最初に表示されるバッ ファーで、Gnus が生きている限り決して消されることはありません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 グループバッファーの形式

グループモードのツールバーをカスタマイズすることができます。M-x customize-apropos RET gnus-group-tool-bar を試してみてください。この機 能を利用できるのは Emacs だけですが。

ツールバーのアイコンは、今ではカーソルの位置に応じて正しく有効に、または 無効にされるので、グループバッファー内での移動は遅くなります。これは変 数 gnus-group-update-tool-bar で禁止することができます。そのディ フォルト値は Emacs のバージョンに依存しています。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.1 グループ行の仕様

グループバッファーのディフォルトの形式はきれいでつまんないけど、これは君 の好きなように、サイコーにダサくすることもできます。

これがグループ行の例です。

 
     25: news.announce.newusers
 *    0: alt.fan.andrea-dworkin

とっても簡単でしょ?

news.announce.newusers’ には 25 の未読記事があるのがわかります。 ‘alt.fan.andrea-dworkin’ には未読記事はないけれども、印を付けた記事 がいくつかあります (行頭のちっちゃなアスタリスクが見える?)。

この形式は gnus-group-line-format 変数をいじることで、どんな風に でも変えられます。この変数は format の仕様風に動作します。つま り (あのクソ) C 言語を使う人たちのため、printf の仕様とほぼ同じです。 See section 書法仕様変数.

上記の行を生成するのは ‘%M%S%5y:%B%(%g%)\n’ という値です。

コロンは、この行の中に必ず無くてはいけません。カーソルは何かの操作をした 後は常にコロンのところに移動するからです。See section ポイントの移動. 他に は何も必要ではありません—グループ名さえもです。表示されている文字はす べてただの画面の飾りであり、Gnus がそれを調べることはありません。Gnus は 必要とするすべての実情報を、テキスト属性を使って憶えています。

(もし君が、すごくヘンな、素晴らしい、表計算風のレイアウトを作ったとした ら、みんな、君は会計の仕事が忙しくって、ニュースを読んで時間を無駄使いし たりなんかしてない、って信じてくれるよ。)

以下が使用できるフォーマット文字のリストです。

M

そのグループに印の付いた記事しか無いときは、アスタリスク文字。

S

そのグループが購読されているかどうか。

L

購読度のレベル。

N

未読記事の数。

I

保留記事の数。

T

印付き記事の数。

R

既読記事の数。

U

まだ読まれたことが無い記事の数。

t

推定全記事数 (これは実際は max-number - min-number + 1)。

Gnus がこの推定を使うのは、NNTP プロトコルは能率の良 い max-numbermin-number へのアクセスを提供するものの、本 当の未読記事の数を得るには必ずしも能率的ではないからです。ヒステリックな レーズン (訳注:「歴史的な理由」のモジり) により、メールバックエンドにお いても、限定された同じインターフェースを使って、本当の未読記事の数を能率 的に得ることはできるかもしれません。この制限を Gnus から取り払うことはバッ クエンドのインターフェースを変更することを意味し、それは楽な仕事ではあり ません。

nnml バックエンド (see section メールスプール) には、この欠陥を巧みに補う 「グループ圧縮」(group compaction) という機能があります。それは、記事の 番号を 1 から順に振り直してすきまを取り除けば正しい全記事数を得ることが できる、という着想によります。将来は他のバックエンドもこれをサポートする かもしれません。全記事数をまあまあ最新の状態にしておくためには、時々グルー プを (またはサーバーのディレクトリーを) 圧縮する必要があるでしょう。 See section その他のグループ関連, See section サーバー命令.

y

未読でも、印付きでも、保留でもない記事の数。

i

印付き記事と保留記事の数。

g

グループ名のフルネーム。

G

グループ名。

C

グループのためのコメント (see section グループパラメーター)、またはグループパラ メーターにコメントの要素が無い場合はグループ名。

D

ニュースグループの説明。これらが現れる前に、グループの説明を読む必要があ ります。それには gnus-read-active-file を設定するか、グループバッ ファーで M-d コマンドを使ってください。

o

司会者付きの場合 ‘m’。

O

司会者付きの場合 ‘(m)’。

s

選択方法。

B

そのグループの概略バッファーが開いているかどうか。

n

どこからの選択か。(訳注: バックエンドのシンボル名)

z

外部選択方法が使われている場合、‘<%s:%n>’ と同じ文字列。

P

トピック (see section Group Topics) のレベルに応じた字下げ。

c

短い (省略した) グループ名。gnus-group-uncollapsed-levels 変数は、 どのレベルまでグループ名を全部残すかを示します。ディフォルトは 1 で す—この意味は、‘gnu.emacs.gnus’ のようなグループ名 を ‘g.e.gnus’ に短縮するということです。

m

そのグループに最近新着メールが届いている場合 は ‘%’ (gnus-new-mail-mark)。

p

#’ (gnus-process-mark) で、そのグループにプロセス印が付いて いることを示します。

d

最後にいつこのグループを読んだかを示す文字列 (see section グループの日付)。

F

キャッシュとエージェントの両方によって取得された記事がディスクに占める容 量。値はカラム幅を最小にするために、自動的にバイト (B)、キロバイト (K)、 メガバイト (M)、またはギガバイト (G) に縮尺されます。固定幅カラム用に は %7F の形式で足ります。

u

利用者定義指定。フォーマット文字列中で、この次の文字はアルファベット文字 でなければいけません。 Gnus は gnus-user-format-function-X’ 関数を呼び出します。こ こで ‘X’ は ‘%u’ に続いている文字です。この関数は引数に一つの ダミーパラメーターを渡されます。この関数は、他の各指定文字の情報と同様に、 バッファーに挿入される文字列を返さなければなりません。

すべての「〜の数」の指定は、もしその情報が利用できない場合にはアスタリス ク (‘*’) で埋められます—例えば、起動されていない外部グループや、 不正な基本グループの場合です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.2 グループモード行の仕様

モード行 は gnus-group-mode-line-format (see section モード行書法仕様) を 設定することで変更できます。こいつは指定文字をあんまりたくさん知っていま せん。

S

基本ニュースサーバー。

M

基本選択方法。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.3 グループのハイライト

グループバッファーのハイライトは gnus-group-highlight 変数によっ て制御されます。これは (form . face) のようなものを要 素に持つ連想リストです。form が評価された結果が、nil 以外の 何かになると、その行に対して face が使用されます。

以下がこの変数の値の例です。これは背景が暗い設定ではきれいに見えるかもし れません。

 
(cond (window-system
       (setq custom-background-mode 'light)
       (defface my-group-face-1
         '((t (:foreground "Red" :bold t))) "First group face")
       (defface my-group-face-2
         '((t (:foreground "DarkSeaGreen4" :bold t))) "Second group face")
       (defface my-group-face-3
         '((t (:foreground "Green4" :bold t))) "Third group face")
       (defface my-group-face-4
         '((t (:foreground "SteelBlue" :bold t))) "Fourth group face")
       (defface my-group-face-5
         '((t (:foreground "Blue" :bold t))) "Fifth group face")))

(setq gnus-group-highlight
      '(((> unread 200) . my-group-face-1)
        ((and (< level 3) (zerop unread)) . my-group-face-2)
        ((< level 3) . my-group-face-3)
        ((zerop unread) . my-group-face-4)
        (t . my-group-face-5)))

フェースとフォント も参照してください。

この form が評価されるときに動的に束縛されている変数には以下のものがあり ます。

group

グループ名。

unread

そのグループの未読記事の数。

method

選択方法。

mailp

そのグループがメールのグループかどうか。

level

そのグループのレベル。

score

そのグループのスコア。

ticked

そのグループ中の印の付いた記事の数。

total

そのグループ中の全記事数。もっと正確に言うと、max-number マイナ ス min_number プラス 1。

topic

トピックマイナーモードを使用している時、この変数は挿入されている現在のト ピックに束縛されます。

この form が評価 (eval) されるときは、ポイントは問題のグループの 行頭にあります。従って、通常の Gnus の関数のほとんどを使ってそのグループ の情報を取ってくることができます。

gnus-group-update-hook はグループ行が変更されたときに呼び出されま す。これは gnus-visualnil のときは呼び出されません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.2 グループ操作

すべての移動コマンドは数値接頭引数を理解するので、期待する通りの動作をし ます。たぶんね。

n

次の未読記事のあるグループに移動しま す (gnus-group-next-unread-group)。

p
DEL

一つ前の未読記事のあるグループに移動しま す (gnus-group-prev-unread-group)。

N

次のグループに移動します (gnus-group-next-group)。

P

一つ前のグループに移動します (gnus-group-prev-group)。

M-n

一つ前の同じレベル (もしくはそれより小さいレベル) の未読グループに移動し ます (gnus-group-prev-unread-group-same-level)。

M-p

次の同じレベル (もしくはそれより小さいレベル) の未読グループに移動しま す (gnus-group-next-unread-group-same-level)。

次の三つの命令はグループにジャンプするためのものです:

j

グループにジャンプします (それが見えるようになっていなかったら見えるよう にします) (gnus-group-jump-to-group)。kill されているグループも、 生きているグループと同様にジャンプできます。

,

最も小さいレベルの未読グループにジャンプしま す (gnus-group-best-unread-group)。

.

最初の未読記事のあるグループにジャンプしま す (gnus-group-first-unread-group)。

gnus-group-goto-unreadnil にすると、すべての移動コマン ドは、次の未読グループではなく次のグループに移動するようになります。その コマンドが次の未読グループに移動すると言い張っていてもです。ディフォルト は t です。

概略バッファーを出たときに gnus-summary-next-group-on-exitt だったら、グループバッファーで次の未読のグループに移動します。 それ以外の場合は出たグループに留まります。ディフォルトは t です。

訳注: gnus-group-goto-unread が次の未読グループか単に次のグループ のどちらに移動するかを指定するのに対し て gnus-summary-next-group-on-exit は移動するかしないかを指定する ために使います。ただし後者は q (または Z Q, gnus-summary-exit) で概略バッファーを出たときだけに効果を及ぼしま す。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 グループの選択

SPACE

現在のグループを選択し、概略バッファーに切り替えて最初の未読記事を表示し ます (gnus-group-read-group)。もしそのグループに未読記事が無い、 もしくはこの命令に数値以外の接頭引数を与えると、Gnus はサーバーからこの グループのすべての古い記事を取得しようとします。n の数値接頭引数を 与えると、Gnus の取得する記事数は n になります。n が正の数で あれば Gnus は新しい方から n 個の記事を取得し、n が負の数で あれば Gnus は古い方から abs(n) 個の記事を取得します。

したがって、SPC では普通にグループに入り、C-u SPC では古い記 事が現れます。C-u 4 2 SPC では 42 個の最新の記事を取得し、C-u - 4 2 SPC では 42 個の最も古い記事を取得します。

グループにいる (概略バッファーにいる) ときは、M-g で新しい記事を取 得できるし、C-u M-g では古い記事を表示することができます。

RET

現在のグループを選択し、概略バッファーに切り替えま す (gnus-group-select-group)。gnus-group-read-group と同じ 引数を取ります—唯一の違いは、グループに入ったときに最初の未読記事を表 示しない、ということです。

M-RET

これは上記のコマンドと同じ動作をしますが、「ゴタゴタ」は最低限にしようと します (gnus-group-quick-select-group)。スコア・kill の処理は行な われず、ハイライトも記事消去もしません。これは、あなたが本当に急いでいて、 どっかのやたらでっかいグループに入らなければいけないときに役に立つかもし れません。また、接頭引数に 0 を与えれば (すなわち 0 M-RET)、 Gnus は概略バッファーを作ろうとさえしません。これは概略バッファーを作る 前にスレッド表示を切り替えたいとき役に立ちます (see section 概略生成命令)。

M-SPACE

これは RET コマンドと同じ動作をするさらにもう一つのコマンドですが、 このコマンドは記事消去と保留記事を隠す処理を行ないませ ん (gnus-group-visible-select-group)。

C-M-RET

最後にこのコマンドは、現在のグループを一度限り、その内容に一切の処理をす ることのないように選択しま す (gnus-group-select-group-ephemerally)。スレッド表示さえも行な われません。この方法で選択した後にこのグループに対して行なったことはすべ て、その後に影響を与えることはありません。

gnus-large-newsgroup 変数は、何を大きなグループと考えるべきか を Gnus に与えます。nil だったら、どのグループも大きいと考えませ ん。ディフォルト値は 200 です。グループに (未読と可視の) 記事がこの数以 上あれば、Gnus はそのグループに入る前に利用者に確認を求めます。利用者は サーバーからいくつの記事を取得するかを指定できます。もし利用者が負の 数 (-n) を指定すれば、古い方から n 個の記事を取得します。正 の数であれば、新しく到着した方から n 個の記事を取得します。

gnus-large-ephemeral-newsgroupgnus-large-newsgroup と 同じですが、一時ニュースグループのためにだけ使われます。

いくつかのニュースサーバーのとあるグループでは、期限切れ消去されない少数 の非常に古い記事と最新のものとの間に大きな隙間があるかもしれません。そう いう場合、そのサーバーは LIST ACTIVE group コマンドに対して例え ば (1 . 30000000) のようなデータを返すでしょう。たとえ実際に は 1〜10 と 29999900〜30000000 の記事しか無くても、Gnus は最初からそのこ とを知っているわけではないので 30000000 通の記事を受け取るための準備をし ます。しかしそれでは何百メガバイトのメモリーを消費してしまうし、場合によっ ては Emacs を立ち往生させてしまうかもしれません。もしそのようなサーバー を使うのであれば、変数 gnus-newsgroup-maximum-articles を正の数に 設定してください。値は、あらゆるグループでその数の最新の記事以外 を Gnus が無視することを意味します。例えば 10000 という数 は Gnus に 29990001〜30000000 の記事だけを取得させるようにします (最新の 記事番号が 30000000 だった場合です)。この変数に数値を設定すると、非常に 古い記事を読むことができなくなってしまうかもしれないことに注意してくださ い。変数 gnus-newsgroup-maximum-articles のディフォルト値 は nil で、その場合 Gnus は古い記事を無視しません。

もし gnus-auto-select-first が非-nil だったら、 SPACE コマンドでグループに入ったときに自動的に記事を選択します。ど の記事が選択されるかは、変数 gnus-auto-select-subject で制御され ます。この変数に設定できる有効な値は:

unread

最初の未読記事の表題の行にポイントを移動させます。

first

最初の記事の表題の行にポイントを移動させます。

unseen

まだ読まれたことが無い最初の記事の表題の行にポイントを移動させます。

unseen-or-unread

まだ読まれたことが無い最初の記事があれば、その記事の表題の行にポイントを 移動させ、無かったら最初の未読記事の表題の行にポイントを移動させます。

best

スコアが最も高い未読記事の表題の行にポイントを移動させます。

この変数は関数であることもできます。その場合、その関数は表題の行にポイン トを移動させるために呼ばれます。

もしあるグループで自動記事選択をやめたいのであれば (例えばでっかい記事の あるバイナリーグループでは、とか)、グループが選択されたときに呼び出され る gnus-select-group-hook の中で変 数 gnus-auto-select-firstnil に設定することができます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.4 購読制御コマンド

以下のコマンド群は、グループバッファーで (それぞれのグループを) 講読する かどうかの管理をできるようにします。もしたくさんのグループを講読したいの であれば サーバーバッファー に行って、そこで RETSPC を 使ってサーバーを選ぶ方がおそらくもっと便利かもしれません。その 後 外部サーバーの閲覧 で列挙しているコマンドが、手元で使えるよ うになります。

S t
u

現在のグループを購読する/しないを切り替えま す (gnus-group-unsubscribe-current-group)。

S s
U

グループを購読するかどうかを確認し、購読します。すでに購読するようになっ ている場合には、購読を止めます (gnus-group-unsubscribe-group)。

S k
C-k

現在のグループを kill します (gnus-group-kill-group)。

S y
C-y

最後に kill したグループを yank します (gnus-group-yank-group)。

C-x C-t

二つのグループの順序を置き換えます (gnus-group-transpose-groups)。 これは本当は購読コマンドではありませんが、kill と yank を何度か続ける代 わりにこのコマンドが使えます。

S w
C-w

リージョン内のすべてのグループを kill しま す (gnus-group-kill-region)。

S z

すべてのゾンビグループを kill しま す (gnus-group-kill-all-zombies)。

S C-k

あるレベルのグループをすべて kill します (gnus-group-kill-level)。 kill した後、これらのグループを yank で戻すことはできないので、このコマ ンドはいくらか注意して使ってください。このコマンドが本当に便利になるのは、 ‘.newsrc’ に捨ててしまいたい未購読のグループがたくさんあるときだけ です。レベル 7 で S C-k を行なうと、‘.newsrc’ ファイル中にメッ セージ番号がない未購読グループをすべて kill します。

グループレベル も参照してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 グループデータ

c

そのグループ内のすべての無印の記事を既読にしま す (gnus-group-catchup-current)。グループバッファーから既読にした 場合は gnus-group-catchup-group-hook が呼び出されます。

C

そのグループの全記事を、印付きの記事も含めて既読にしま す (gnus-group-catchup-current-all)。

M-c

現在のグループのすべてのデータをクリアします—印と既読記事のリストを消 し去ります (gnus-group-clear-data)。

M-x gnus-group-clear-data-on-native-groups

もし NNTP サーバーを別のものに切り替えたとすると、すべての印と 既読情報はもう役には立ちません。このコマンドを使って基本グループのすべて のデータをクリアすることができます。注意して使ってね。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.6 グループレベル

すべてのグループは「購読度」(subscribedness) のレベルを持ちます。 例えば、あるグループがレベル 2 だとすれば、それはレベル 5 のグループより も「より購読している」ということです。Gnus に対して、あるレベルかそれよ り小さいレベルのグループのみ一覧表示するように頼むこともできる し (see section グループの一覧表示)、あるレベルかそれより小さいレベルのグループ の新着記事のみを確認することもできます (see section 新着メッセージを探す)。

忘れないで: グループのレベルが大きいほど、重要度は低くなるということ。

S l

現在のグループのレベルを設定します。数値の接頭引数が与えられると、そこか ら n 個のグループのレベルが設定されます。レベルを入力するためのプ ロンプトが出ます。

Gnus はレベル 1 から gnus-level-subscribed (この値を含む) (ディフォ ルトは 5) までのグループを購読、gnus-level-subscribed (この値を含 まない) から gnus-level-unsubscribed (この値を含む) (ディフォルト は 7) までのグループを非購読、gnus-level-zombie をゾンビ (歩く屍) (ディフォルトは 8)、gnus-level-killed を kill されている (完全に 死んでいる) (ディフォルトは 9) と判断します。Gnus は購読と非購読のグルー プはまったく同様に扱いますが、ゾンビと kill グループは、どの記事を読んだ か、存在するかなどの情報を一切持ちません。この死んでいるグループと生きて いるグループの区別は、別にそれがきれいだからとか賢いからというわけではな く、純粋に効率的な理由のためです。

メール用のグループは (もしあれば) 非常に小さいレベル (例えば 1 か 2) に しておくことをお勧めします。

次の Gnus のディフォルトの動作の説明は、ことによると、これらのレベルのす べてを理解する助けになるかもしれません。ディフォルトでは、Gnus は講読し ている空でないグループを表示しますが、L を叩くことによって空のグルー プや非講読のグループも表示させることができます。つまり、非講読のグループ は隠されている、と言っても良いでしょう。

ゾンビと kill グループは、ディフォルトでは隠されている点で非講読のグルー プに似ています。しかし、Gnus がニュースサーバーに対してゾンビと kill グ ループに関する情報 (記事数、未読記事数) の問い合わせをしない点で、購読お よび非購読のグループとは違っています。ふつう、あなたは興味の無いグループ を C-k で kill しますよね。もし、ほとんどのグループが kill されて いると、Gnus は速くなります。

なぜ Gnus はゾンビと kill グループを区別するのでしょう? ええと、サーバー に新しいグループができると、Gnus はディフォルトでそれをゾンビにします。 これは、あなたがふつうは新しいグループに煩わされないことを意味しますが、 あなたは A z で新しいグループのリストを得ることができます。あなた は好みのものを講読し、要らないものは kill すれば良いのです。 (A k で kill されたグループのリストを表示します。)

もしレベル変数で遊びたいのであれば、多少注意をしてまわる必要があります。 いったんそれを設定したら、二度とそれに触らないでください。さらに言えば、 自分で何をやっているかを正確に理解していない限り、一切触らないでください。

身近に関係する二つの変数は gnus-level-default-subscribed (ディフォ ルトは 3) と gnus-level-default-unsubscribed (ディフォルト は 6) です。これらは新しいグループが (非) 購読されたときのレベルです。も ちろん、これら二つの変数の値は、意味のある正しい範囲でなくてはなりません。

gnus-keep-same-levelnil 以外であれば、移動コマンドのい くつかは同一 (あるいはそれより小さい) レベルのグループのみの移動になりま す。特に、あるグループの最後の記事から次のグループに移るとき、次の同 一 (あるいはそれより小さい) レベルのグループに移動します。これは残りのグ ループを読むより先に、より重要なグループを読んでおきたいときには便利かも しれません。

もしこの値が best だったら、最も重要な (最もレベルの値が小さ い) グループに移動します。

ディフォルトでは gnus-group-default-list-level と同じかそれより小 さいレベルのグループが、グループバッファーに一覧表示されます。この変数は 関数であることもできます。その場合、関数が呼ばれてその結果が値として使わ れます。

gnus-group-list-inactive-groupsnil 以外であれば、未読 のグループにアクティブでないグループも一緒に表示します。この変数はディフォ ルトでは t です。もしこれが nil であれば、アクティブでない グループは表示されません。

gnus-group-use-permanent-levelsnil 以外であれば、いっ たん gl コマンドの接頭引数にレベルを与えると、その後のす べてのコマンドにおいてそのレベルが「作用する」レベルになります。

Gnus は通常、gnus-activate-level かそれより小さいレベルのグループ のみを起動します (つまりサーバーに問い合わせをする)。購読していないグルー プを起動したくなければ、この変数を例えば 5 に設定するとよいかもしれませ ん。ディフォルトは 6 です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7 グループのスコア

普通は重要なグループは高レベルにしておくでしょうけれども、この方法では少々 制限がきついですよね。ひょっとしたら、グループをどれくらい頻繁に読むかに よってグループバッファーを並べ替えたいなあ、なんて思いませんか? 理にかなっ てるでしょ?

「グループスコア」(group score) はそのためのものです。Gnus に以下 で説明されている機構で、それぞれのグループに対してスコアを指定することが できます。そしてグループバッファーをこのスコアを基に並べ替えることができ ます。あるいは、スコア順で並べ替えてその後レベルで並べ替えることもできま す。(レベルとスコアをひとまとめにして、グループの「ランク」 (rank) と呼びます。レベルが 4 でスコアが 1 のグループは、レベル が 5 でスコアが 300 のグループよりも高いランクとなります。(レベルの方が 重要度が高く、スコアの方は重要度が低くなります。))

頻繁に読むグループに、めったに読まないグループよりも高いスコアを与えたい ときは、gnus-summary-exit-hook フック に gnus-summary-bubble-group 関数を追加することができます。これで バブル並べ替えの実行結果が (並べ替えの後で) 得られるでしょう。概略モード を終了するたびにこの活動をさせたいのであれば、同じフック に gnus-group-sort-groups-by-rank また は gnus-group-sort-groups-by-score を追加できますが、いくらか遅く なるでしょう。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.8 グループへの印

もしいくつかのグループに対して何らかの命令を実行したい場合で、それらがグ ループバッファーに連続してある場合には、通常通り命令に対して数値接頭引数 を与えるだけです。そうすればほとんどのグループ命令は、これらのグループに 対してあなたの命令に従います。

しかしそれらのグループが順番に並んでいない場合においても、いくつかのグルー プに対して命令を実行することができます。単に始めにプロセス印でグループに 印を付けておき、そして命令を実行するだけです。

#
M m

現在のグループに印を付ける (gnus-group-mark-group)。

M-#
M u

現在のグループから印を削除する (gnus-group-unmark-group)。

M U

すべてのグループから印を削除する (gnus-group-unmark-all-groups)。

M w

ポイントとマークの間のすべてのグループに印を付け る (gnus-group-mark-region)。

M b

バッファー内のすべてのグループに印を付ける (gnus-group-mark-buffer)。

M r

ある正規表現に合致するすべてのグループに印を付け る (gnus-group-mark-regexp)。

プロセス/接頭引数 も参照してください。

プロセス印が付けられているすべてのグループに対して何かの命令を実行したい ときは、M-& (gnus-group-universal-argument) 命令を使うこと ができます。プロンプトから実行したい命令を入力します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.9 外部グループ

どうやってサーバーを講読するか (see section ニュースを見つける) を考えるとき、 最初に思い付くの は gnus-secondary-select-methods およ び gnus-select-method に Emacs Lisp で定義を書くことでしょう。別 のやり方は外部のサーバーとグループを使うことです。ここ で「外部 (Foreign)」は、選択方法 (select methods) によるものではないこと を意味します。すべての外部サーバーに関する設定と何を講読するか は ‘~/.newsrc.eld’ ファイルだけに格納されます。

以下では、一般的な外部グループの作成、変更を行なうグループモードの命令を いくつか、および特別な目的のグループを簡単に作成する命令を紹介します。こ れらの命令はすべて、新規に作成したグループをポイント位置に挿入しま す—gnus-subscribe-newsgroup-method は参照されません。

これらグループを編集するコマンド群で行なった変更は ‘~/.newsrc.eld’ (gnus-startup-file) に格納されます。代わりの手段として、変 数 gnus-parameters も用意されています (see section グループパラメーター)。

G m

新しいグループを作成します (gnus-group-make-group)。Gnus はプロン プトを表示して、名前と方法と、場合によっては address の入力を求め てきます。より簡単に NNTP グループを購読する方法については、 外部サーバーの閲覧 を参照してください。

G M

一時ニュースグループを作成しま す (gnus-group-read-ephemeral-group)。 Gnus はプロンプトを表示し て、名前、方法および address の入力を求めます。

G r

現在のグループの名前を、何か別のものに変更しま す (gnus-group-rename-group)。これはある種のグループ—主にメール グループに対してのみ有効です。このコマンドはバックエンドによっては非常に 遅いことも有り得ます。

G c

グループパラメーターをカスタマイズする (gnus-group-customize)。

G e

現在のグループの選択方法を修正するためのバッファーに移動しま す (gnus-group-edit-group-method)。

G p

グループパラメーターを修正するためのバッファーに移動しま す (gnus-group-edit-group-parameters)。

G E

グループ情報を修正するためのバッファーに移動しま す (gnus-group-edit-group)。

G d

ディレクトリーグループを作成します (see section ディレクトリーグループ)。ディレク トリー名をプロンプトで入力しま す (gnus-group-make-directory-group)。

G h

Gnus ヘルプグループを作成します (gnus-group-make-help-group)。

G D

任意のディレクトリーを nneething バックエンドニュースグループであ るかのように読み込みます (gnus-group-enter-directory)。 See section なんでもグループ.

G f

何らかのファイルをもとにグループを作成しま す (gnus-group-make-doc-group)。このコマンドに接頭引数を与えた場 合、ファイル名とファイルタイプをプロンプトで入力します。現在サポートされ ているファイルタイプは mbox, babyl, digest, news, rnews, mmdf, forward, rfc934, rfc822-forward, mime-parts, standard-digest, slack-digest, clari-briefs, nsmail, outlook, oe-dbx および mailman です。接頭引数なしでこのコマンドを実 行すると、Gnus はファイルタイプを推測します。See section 文書グループ.

G u

gnus-useful-groups にあるグループの一つを作りま す (gnus-group-make-useful-group)。

G w

ウェブ検索結果をもとに一時的なグループを作成しま す (gnus-group-make-web-group)。このコマンドに接頭引数を与えると、 一時的ではなく固定したグループを作成します。プロンプトで検索エンジンの種 類 (search engine type) と検索文字列を入力します。有効な検索エンジンの種 類には google, dejanews, gmane があります。 See section ウェブ検索.

もし、google 検索エンジンを用いる場合には、 ‘shaving group:alt.sysadmin.recovery’ のような合致する文字列を用い ることによって、検索対象を特定のグループに限定することが可能です。

G R

RSS feed に基づくグループを作りま す (gnus-group-make-rss-group)。URL の入力を促されます。 See section RSS.

G DEL

この関数は現在のグループを削除します (gnus-group-delete-group)。 接頭引数が与えられると、この関数はそのグループ内の全記事を本当に削除し、 グループ自身をこの世から強制的に抹殺してしまいます。接頭引数は、あなたが 何をやろうとしているか、本当に自信があるときにのみ使ってください。まあ、 このコマンドは (nntp グループのような) 読み出し専用グループには使 えませんけれど。

G V

新しい、新鮮な、空の nnvirtual グループを作成しま す (gnus-group-make-empty-virtual)。See section 仮想グループ.

G v

現在のグループを nnvirtual グループに追加しま す (gnus-group-add-to-virtual)。これはプロセス印/接頭引数の習慣に 従います。

さまざまな選択方法に関するさらなる情報は 選択方法 を参照して ください。

もし gnus-activate-foreign-newsgroups が正の数であれば、Gnus は起 動時に、この数かそれよりも小さいレベルの外部グループをすべてチェックしま す。これは特に違った NNTP サーバーからたくさんのグループを購読 している場合には、しばらく時間がかかるかもしれません。 グループレベル も参照してください。gnus-activate-level も外部 ニュースグループの活性化に影響を及ぼします。

以下のコマンドは一時的なグループを作ります。それらは Group バッファーか らだけではなく、どの Gnus バッファーからも呼ぶことができます。

gnus-read-ephemeral-gmane-group

Gmane.org で一時的なグループを講読するためのコマンドです。記事 は gnus-gmane-group-download-format によって指定され た URL を使って HTTP でダウンロードされます。Gnus はグループ名 と最初の記事番号および記事数の範囲を尋ねます。

gnus-read-ephemeral-gmane-group-url

このコマンドは gnus-read-ephemeral-gmane-group に似ていますが、グ ループ名と最初の記事番号および記事数の範囲は、与えられ た URL を元に決定されます。サポートされている URL の 形式は、例えば次のようなものです: http://thread.gmane.org/gmane.foo.bar/12300/focus=12399, http://thread.gmane.org/gmane.foo.bar/12345/, http://article.gmane.org/gmane.foo.bar/12345/, http://permalink.gmane.org/gmane.foo.bar/12345/, およ び http://news.gmane.org/group/gmane.foo.bar/thread=12345

gnus-read-ephemeral-emacs-bug-group

一時的なグループで Emacs のバグリポートを講読します。Gnus はバグの番号を 尋ねます。ディフォルトは現在位置の番号です。 URLgnus-bug-group-download-format-alist で指定しま す。

gnus-read-ephemeral-debian-bug-group

一時的なグループで Debian のバグリポートを講読します。 gnus-read-ephemeral-emacs-bug-group に似ています。

これらのコマンドのいくつかは、記事のボタンとしても便利です。 See section 記事のボタン.

例:

 
(require 'gnus-art)
(add-to-list
 'gnus-button-alist
 '("#\\([0-9]+\\)\\>" 1
   (string-match "\\<emacs\\>" (or gnus-newsgroup-name ""))
   gnus-read-ephemeral-emacs-bug-group 1))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.10 グループパラメーター

グループパラメーターは、ある特定のグループに固有な情報を保持します。

グループパラメーターの修正には G pG c 命令を使ってくださ い (G p は Lisp ベースの、G c は Custom ふうのインターフェー スを提供します)。トピックパラメーターについて読んでみることも面白いでしょ う (see section トピックパラメーター)。加えて、gnus-parameters 変数を介し てグループパラメーターを設定することもできます。下記参照してください。

以下はグループパラメーターリストの例です:

 
((to-address . "ding@gnus.org")
 (auto-expire . t))

それぞれの要素は『点対』(dotted pair)—つまり点 (dot) の前に鍵、点の後 ろに値があるもの、で構成されます。すべてのパラメーターはこの形式を取りま すが、例外 としてローカル変数の指定は点対ではなく通常のリス ト (訳注: 後述の (variable form) の項を参照) になりま す。

いくつかのパラメーターは対応するカスタマイズ可能な変数を持っています。そ れらは正規表現と値の連想リストです。

以下は利用可能なグループパラメーターです:

to-address

フォローアップとニュースへの投稿をするときに使用されるアドレス。

 
(to-address . "some@where.com")

これは主に、閉じたメーリングリストを表わすメールグループにおいて便利なも のです—すなわちメーリングリストに投稿する人はすべてそれを購読している はず、というメーリングリストのことです。このパラメーターを使用すると、メー ルはそのメーリングリストにしか投稿されないことが保証されるので、参加者は あなたのフォローアップ記事を二通受け取ることはありません。

to-address を指定すると、そのグループが外部グループであるかどうか に関わらず有効になります。例えば ‘fa.4ad-l’ というグループがサーバー 上にあったとしましょう。これは本当のニュースグループですが、サーバーはメー ルニュースゲートウェイを通して記事を受け付けます。つまりこのグループに対 して直接投稿することは不可能で、代わりにそのメーリングリストにメールを送 信しなければなりません。

gnus-parameter-to-address-alist も参照してください。

to-list

そのグループで a を押したときに使用されるアドレス。

 
(to-list . "some@where.com")

これはフォローアップをしたときは完全に無視されます—例外はそれがニュー スグループを表わしているときは、f を押したときにメールグループのルー ルが適用されるということです。

もし a コマンドをメールグループで実行したときに、to-list グ ループパラメーターも to-address もグループパラメーターも無ければ、 to-list グループパラメーターは、 gnus-add-to-listt に設定されていればメッセージ送信時に 自動的に付加されます。

もしこのグループパラメーターが設定されていると、概略バッファーに入ったと きに gnus-mailing-list-mode が有効になります。

gnus-parameter-to-list-alist も参照してください。

subscribed

もしこのパラメーターが t に設定されていると、Gnus はあなたがこの グループを to-address と to-list パラメーターのアドレスで購読しているメー リングリストであると解釈します。この情報を Gnus に与えることは、あなたが それらのメーリングリストに投稿するときに正しい Mail-Followup-To ヘッダー を生成するための (ほんの) 第一歩です。二歩目は ‘.gnus.el’ に以下を 入れることです。

 
(setq message-subscribed-address-functions
      '(gnus-find-subscribed-addresses))

利用できる MFT 対応機能を完全に扱うには、ここ (see (message-ja)Mailing Lists section ‘メーリングリスト’ in The Message Manual) を見てください。

visible

グループパラメーターのリスト中に (visible . t) という要素があれば、 そのグループはグループバッファーにおいて、未読記事があるかどうかに関わら ず、常に表示されます。

このパラメーターを gnus-parameters を介して設定することはできませ んが、代わりに gnus-permanently-visible-groups を使えば良いでしょ う。

broken-reply-to

(broken-reply-to . t) という要素があれば、そのグループで は Reply-To は無視され、 reply-tognus-boring-article-headers の部分であれば、ヘッ ダーが隠されるという意味です。これはある listserv によるメーリングリスト を購読していて、それが Reply-To 欄を listserv 自身に返すように付 けられている場合に有効でしょう。これはおかしな振る舞いです。だからこれが 要るんです!

to-group

(to-group . "some.group.name") という要素は、そのグループへの投稿 はすべて some.group.name に送られる、という意味です。

newsgroup

グループパラメーターリストに (newsgroup . t) があれば、Gnus はす べての応答をニュース記事に対する応答であるかのように扱います。これは実際 にはニュースグループのミラーであるメールグループに対して有効です。

gcc-self

グループパラメーターリストに (gcc-self . t) があれば、新しく作成 するメッセージは現在のグループに Gcc されます。も し (gcc-self . none) があれば、Gcc: 欄は生成されず、 (gcc-self . "string") があればこの文字列はそのまま gcc 欄 に挿入されます。このパラメーターは以下で説明するどんなディフォルト の Gcc の規則よりも優先されます (see section メッセージの保管)。

警告: nntp (またはその種の) グループのパラメーターリスト に (gcc-self . t) を加えることに効力はありません。nntp サー バーは記事を受け入れません。

auto-expire

グループパラメーターに (auto-expire . t) のような要素があれば、す べての既読記事は期限切れ消去されるように印を付けられます。他の方法は、 See section メールの期限切れ消去.

gnus-auto-expirable-newsgroups も参照してください。

total-expire

グループパラメーターに (total-expire . t) のような要素があれば、 既読記事は、期限切れ消去の印が付いていなくてもすべて期限切れ消去処理を施 されます。注意して使用してください。未読記事、印付き記事、保留記事は期限 切れ消去されません。

gnus-total-expirable-newsgroups も参照してください。

expiry-wait

グループパラメーターに (expiry-wait . 10) のような要素があれば、 この値は記事を期限切れ消去するとき に nnmail-expiry-waitnnmail-expiry-wait-function の設 定 (see section メールの期限切れ消去) よりも優先されます。この値は期限切れ消去の日 数 (整数である必要はない) かもしくは neverimmediate の シンボルを指定できます。

expiry-target

期限切れ消去されるメッセージの果てる場所。このパラメーター は nnmail-expiry-target よりも優先されます。

score-file

(score-file . "file") のような要素は、‘file’ を現在のグルー プに適用されるスコアファイルにします。すべての適用されるスコア・エントリー はこのファイルに入ります。

adapt-file

(adapt-file . "file") のような要素は、‘file’ を現在のグルー プの適応ファイルにします。すべての適応スコア・エントリーはこのファイルに 入ります。

admin-address

メーリングリストから脱会するときは、脱会通知メールをそのメーリングリスト 自身に送信してはいけません。代わりに管理用アドレスにメッセージを送信しま す。このパラメーターにはどこか都合の良いな管理用アドレスを書いておくこと ができます。

display

(display . MODE) のような要素は、グループに入るときにどの記事を表 示するかを指定します。有効な値は、

all

未読、既読記事の両方をすべて表示します。

an integer

そのグループの最後の integer 個の記事を表示します。これ は C-u integer でそのグループに入るのと同じです。

default

ディフォルトの記事を表示します。これは通常は未読記事と可視記事です。

配列

述語を満足するように記事を表示します。

いくつか例を挙げます:

[unread]

未読の記事だけを表示します。

[not expire]

期限切れ消去可能な記事以外のすべてを表示します。

[and (not reply) (not expire)]

期限切れ消去可能とすでに返信した記事以外のすべてを表示します。

利用できる演算子は not, and および or です。述語 は tick, unsend, undownload, unread, dormant, expire, reply, killed, bookmark, score, save, cache, forward, unseen および recent を含みます。

display パラメーターは、概略バッファーを指定した一部の組だけに制 限するように働きます。制限を外すのは / w コマンドでできま す (see section 制限をする)。

comment

(comment . "This is a comment") のような要素は、そのグループに対 する任意のコメントです。グループ行に表示することができま す (see section グループ行の仕様)。

charset

(charset . iso-8859-1) のような要素は、iso-8859-1 をディフォ ルトの文字セットにします。すなわち、文字セットを指定しないすべての記事に、 その文字セットが使われます。

gnus-group-charset-alist も見てください。

ignored-charsets

(ignored-charsets x-unknown iso-8859-1) のような要素は、 iso-8859-1x-unknown を無視します。すなわち、記事のデコー ドにディフォルトの文字セットが使われます。

gnus-group-ignored-charsets-alist も見てください。

posting-style

このグループの追加の投稿様式をここに保存することができま す (see section 投稿様式)。書式は gnus-posting-style 連想リスト と同じですが、ここにはグループ名に合致する正規表現はありません (当然で す)。このグループの様式の要素は gnus-posting-styles で見つかった ものよりも優先されます。

例えば、このグループのみ、かっこいい名前と署名にしたいなら、 gnus-posting-styles をいじらずに、このようなものをグループパラメー ターに入れることができます:

 
(posting-style
  (name "Funky Name")
  ("X-My-Header" "Funky Value")
  (signature "Funky Signature"))

グループバッファーを整理するためにトピック (see section Group Topics) を使っ ている場合は、トピックパラメーターでも投稿様式を設定することができます。 トピックパラメーターにある投稿様式は、そのトピックのすべてのグループに適 用されます。もっと正確に言うと、あるグループのための投稿様式の設定は、そ のグループおよびそれが属するすべてのトピックのパラメーターにあるすべての 投稿様式の設定を、階層的に合併することによって生成されます。

post-method

もしこれが設定されていると、メッセージを送信するための選択方法とし て gnus-post-method の代わりに使われます。

mail-source

これが設定されていて、かつ mail-sources の設定が group グ ループ・メールソース (see section メールソース) を含んでいるならば、その値が このグループのメールソースになります。

banner

(banner . regex) のような項目は、記事のすべての場所で正規表 現 regex に合致するものを削除します。regex の代わりにシンボ ル signature (最後の署名を削除) や連想リス ト gnus-article-banner-alist の各要素を使うこともできます。

sieve

このパラメーターは、入ってきたメールがこのグループに置くに値するかどうか を調べる Sieve (ふるい) テストを持ちます。このグループパラメーターを元 に ‘fileinto "group.name";’ というテスト条件を本体に持つ、 Sieve の ‘IF’ 制御構造体が作られます。

例えば、もし ‘INBOX.list.sieve’ グループが (sieve address "sender" "sieve-admin@extundo.com") というグループパラメーターを持って いたならば、グループパラメーターを Sieve スクリプトに変換す る (see section Sieve コマンド) ときに、以下の Sieve コードが作られます:

 
if address "sender" "sieve-admin@extundo.com" {
        fileinto "INBOX.list.sieve";
}

複数の電子メールアドレスのためのテストを生成するには、(sieve address "sender" ("name@one.org" else@two.org")) のようなグループパラ メーターを使ってください。Sieve スクリプト (see section Sieve コマンド) を生 成すると、以下のような Sieve コードが作られます:

 
if address "sender" ["name@one.org", "else@two.org"] {
        fileinto "INBOX.list.sieve";
}

Sieve パラメーターに関連する重要なコマンドと変数については、Sieve コマンド を参照してください。

Sieve 言語は RFC 3028 で述べられていま す (see Emacs Sieve: (sieve-ja)Top section ‘Top’ in Emacs Sieve)。

(agent parameters)

エージェントを使うようにしてあると、個々のグループでエージェントの振る舞 いを制御するどのパラメーターも設定することができます。エージェントパラメー ターについては 分類の文法 を参照してください。たいていの利用 者は、設定に要する苦労を最小限にするために、エージェントカテゴリーかグルー プトピックのどちらかでエージェントパラメーターを設定することを選ぶでしょ う。

(variable form)

グループに入るときに、そのグループローカルの変数を設定するグループパラメー ターを使用することができます。‘news.answers’ においてスレッド表示を 行ないたくないときは、そのグループにグループパラメーター に (gnus-show-threads nil) と書けます。 gnus-show-threads は、その概略バッファーの中のローカル変数になり、 form の nil はそこで eval (評価) されます。

この機能は variable が変数として存在する場合に限って、それを概略バッ ファーでローカルに設定することに注意してください。さもなければ form の評 価だけが行なわれるでしょう。したがって、もし form を評価した結果を変数に 設定する必要があるのならば、defvar などを使って、前もってその変数 を定義しておかなければなりません。

でも、いくつかの変数は記事バッファーか (返信、フォロー、あるいは新規に作 られたメッセージの) メッセージバッファーで評価されます。代わりに、問題の 変数を gnus-newsgroup-variables に加えることが助けになるかもしれ ません。したがって、グループパラメーターを介し て message-from-style を設定したいならば、‘~/.gnus.el’ ファ イルのどこか他のところに、次の述語が必要になるかもしれません:

 
(add-to-list 'gnus-newsgroup-variables 'message-from-style)

この機能の用途の一つは、記事の表題欄からメーリングリストの標識タグをはぎ 取ることです。もしニュースグループ

 
nntp+news.gnus.org:gmane.text.docbook.apps

が、すべての記事の表題に ‘DOC-BOOK-APPS:’ というタグを持っているな らば、そのグループのグループパラメーターに (gnus-list-identifiers "DOCBOOK-APPS:") を入れることによって、そのグループの概略バッファーに表 示される記事の表題からタグをはぎ取ることができます。

これはもし必要であれば、グループ毎のフック関数としても使用できます。もし あるグループに入ったときにビープ音を鳴らしたければ、そのグループのパラメー ターに (dummy-variable (ding)) みたいなものを書いておくこともでき ます。もし dummy-variable という変数が存在していれば (上記参照)、 それに (無意味な) (ding) の評価結果が設定されます。

あるいは、variable はそのグループに対してローカルになるので、この 様式は一時的にフックを変更するために使うことができます。例えば、以下のも のがグループパラメーターに追加されると、

 
(gnus-summary-prepared-hook
  '(lambda nil (local-set-key "d" (local-key-binding "n"))))

そのグループに入ったときに d キーは記事に期限切れ消去の印を付けな いようになります。

グループパラメーターは gnus-parameters 変数を介在して設定すること もできます。でもいくつかのパラメーター、例えば visible は効力を発 揮しません (その場合、代替とし て gnus-permanently-visible-groups を使うことができます)。例です:

 
(setq gnus-parameters
      '(("mail\\..*"
         (gnus-show-threads nil)
         (gnus-use-scoring nil)
         (gnus-summary-line-format
          "%U%R%z%I%(%[%d:%ub%-23,23f%]%) %s\n")
         (gcc-self . t)
         (display . all))

        ("^nnimap:\\(foo.bar\\)$"
         (to-group . "\\1"))

        ("mail\\.me"
         (gnus-use-scoring  t))

        ("list\\..*"
         (total-expire . t)
         (broken-reply-to . t))))

文字列の値は、to-group の例が示すように、正規表現による置き換えを 受けることがあります。

グループ名と gnus-parameters で指定されたこれらの正規表現の一つを 比較するときに大文字と小文字を区別するかどうかは、ディフォルトではその比 較を行なう時点での case-fold-search の値に依存します。一般的 に case-fold-search の値は t で、それは例え ば ("INBOX\\.FOO" (total-expire . t)) という要素 が、‘INBOX.FOO’ グループと ‘INBOX.foo’ グループの両方に適用さ れることを意味します。これらの正規表現が常に大文字と小文字を区別するよう にしたい場合は、gnus-parameters-case-fold-search 変数の値 を nil に設定してください。あるいは、それらが常に大文字と小文字を 区別しないようにしたいなら、それを t に設定してください。

gnus-parameters を介することによって、グループによって異なる並べ 替えを定義することができます。これは、NNTP グループでは最新の ニュースが先頭になるように日付で、RSS グループでは表題で、それ ぞれ並べ替えを行なう例です。この例の最初のグループは、news.gmane.org か ら取得する Debian のデイリーニュースです。RSS グループ は RSS フィードで配信されている Debian のウィークリーニュー ス http://packages.debian.org/unstable/newpkg_main.en.rdf に対応し ます。See section RSS.

 
(setq
 gnus-parameters
 '(("nntp.*gmane\\.debian\\.user\\.news"
    (gnus-show-threads nil)
    (gnus-article-sort-functions '((not gnus-article-sort-by-date)))
    (gnus-use-adaptive-scoring nil)
    (gnus-use-scoring nil))
   ("nnrss.*debian"
    (gnus-show-threads nil)
    (gnus-article-sort-functions 'gnus-article-sort-by-subject)
    (gnus-use-adaptive-scoring nil)
    (gnus-use-scoring t)
    (gnus-score-find-score-files-function 'gnus-score-find-single)
    (gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n"))))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.11 グループの一覧表示

これらのコマンドは、利用できるグループをいろいろに切り分けて表示します。

l
A s

未読記事を持つすべてのグループを表示しま す (gnus-group-list-groups)。数値接頭引数を使うと、このコマンドは 引数の数かそれよりも小さいレベルのグループのみを表示します。ディフォルト では、これはレベル 5 (つまり gnus-group-default-list-level) かそ れより小さいレベル (すなわち購読しているグループのみ) を表示します。

L
A u

未読記事のあるなしに関わらず、すべてのグループを表示しま す (gnus-group-list-all-groups)。数値接頭引数を使用すると、このコ マンドは引数の数かそれよりも小さいレベルのグループのみを表示します。ディ フォルトでは 7 かそれよりも小さいレベルのグループ (すなわち購読、非購読 のグループのみ) が表示されます。

A l

未読記事があるグループのうち、指定したレベルのものだけを表示しま す (gnus-group-list-level)。接頭引数を与えると、未読記事の無いグ ループも含めて表示します。

A k

kill されたグループをすべて表示します (gnus-group-list-killed)。 接頭引数を与えると、購読または非購読のどちらにもなっていないすべての利用 可能なグループを表示します。これはサーバーからアクティブファイルを読むこ とになるでしょう。

A z

すべてのゾンビグループを表示します (gnus-group-list-zombies)。

A m

正規表現に合致する名前を持つグループで、未読記事のある購読グループをすべ て表示します (gnus-group-list-matching)。

A M

正規表現に合致するグループを表示しま す (gnus-group-list-all-matching)。

A A

今接続しているサーバーのアクティブファイルにあるグループを、本当に全部表 示します (gnus-group-list-active)。これはしばらく時間がかかること も有り得ます。たぶん A M を実行して、合致させたい部分 を ‘.’ としてすべての合致するリストを表示させた方が良いでしょう。ま た、このコマンドは (まだ) 存在しないグループも表示するかもしれませ ん—これは kill されたグループであるかのように表示されます。出力は多少 割り引いて受け取ってね。

A a

正規表現に合致する名前を持つグループをすべて表示しま す (gnus-group-apropos)。

A d

正規表現に合致する名前か説明文を持つグループをすべて表示しま す (gnus-group-description-apropos)。

A c

キャッシュ記事を持つグループをすべて表示しま す (gnus-group-list-cached)。

A ?

保留記事を持つグループをすべて表示しま す (gnus-group-list-dormant)。

A !

可視記事 (ticked articles) があるグループをすべて表示しま す (gnus-group-list-ticked)。

A /

現在の選択された範囲に限定したグループを表示しま す (gnus-group-list-limit)。

A f

現在の選択されたグループを書き出します (gnus-group-list-flush)。

A p

現在の選択されたグループを加えたグループを表示しま す (gnus-group-list-plus)。

gnus-permanently-visible-groups 正規表現に合致するグループは、未 読記事があるかないかに関わらず常に表示されます。あるいはグループパラメー ターにおいて visible 要素を追加することでも同様の効果を得ることが できます。

印付きの記事のみを持つグループは通常グループバッファーに表示されます。も し gnus-list-groups-with-ticked-articlesnil であれば、 そのグループは完全に空のグループであるかのように扱われます。ディフォルト は t です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.12 グループの並べ替え

C-c C-s (gnus-group-sort-groups) 命令は、グループバッファー を gnus-group-sort-function 変数で与えられる関数に従って並べ替え ます。利用可能な並べ替え関数 (sorting function) には以下のものがありま す:

gnus-group-sort-by-alphabet

グループ名でアルファベット順に並べ替えます。これがディフォルトです。

gnus-group-sort-by-real-name

グループを本当の (前に何も付いていない) グループ名でアルファベット順に並 べ変えます。

gnus-group-sort-by-level

グループレベルで並べ替えます。

gnus-group-sort-by-score

グループのスコアで並べ替えます。See section グループのスコア.

gnus-group-sort-by-rank

グループのスコアで並べ替え、次にグループレベルで並べ替えます。レベルとス コアは、ひとまとめにして「ランク」と呼ばれます。See section グループのスコア.

gnus-group-sort-by-unread

未読記事の数で並べ替えます。

gnus-group-sort-by-method

選択方法のアルファベット順で並べ替えます。

gnus-group-sort-by-server

サーバー名のアルファベット順で並べ替えます。

gnus-group-sort-function は並べ替え関数のリストであっても構いませ ん。この場合、もっとも重要な並べ替えの鍵を持つ関数は最後でなくてはなりま せん。

ある種の並べ替え用には、直接並べ替える命令もいくつかあります。

G S a

グループバッファーをグループ名のアルファベット順で並べ替えま す (gnus-group-sort-groups-by-alphabet)。

G S u

グループバッファーを未読記事の数で並べ替えま す (gnus-group-sort-groups-by-unread)。

G S l

グループバッファーをグループレベルで並べ替えま す (gnus-group-sort-groups-by-level)。

G S v

グループバッファーをグループのスコアで並べ替えま す (gnus-group-sort-groups-by-score)。See section グループのスコア.

G S r

グループバッファーをグループのランクで並べ替えま す (gnus-group-sort-groups-by-rank)。See section グループのスコア.

G S m

グループバッファーをバックエンドの名前でアルファベット順に並べ替えま す (gnus-group-sort-groups-by-method)。

G S n

グループバッファーを本当の (前に何も付いていない) グループ名でアルファベッ ト順に並べ替えます (gnus-group-sort-groups-by-real-name)。

以下のすべての命令はプロセス/接頭引数の習慣に従いま す (see section プロセス/接頭引数)。

シンボル接頭引数 (see section シンボルの接頭引数) が与えられたときは、これら すべての命令は逆順で並び換えます。

また、グループの一部を並べ替えることもできます。

G P a

グループをグループ名のアルファベット順で並べ替えま す (gnus-group-sort-selected-groups-by-alphabet)。

G P u

グループを未読記事の数で並べ替えま す (gnus-group-sort-selected-groups-by-unread)。

G P l

グループをグループレベルで並べ替えま す (gnus-group-sort-selected-groups-by-level)。

G P v

グループをグループのスコアで並べ替えま す (gnus-group-sort-selected-groups-by-score)。 See section グループのスコア.

G P r

グループをグループのランクで並べ替えま す (gnus-group-sort-selected-groups-by-rank)。See section グループのスコア.

G P m

グループをバックエンドの名前でアルファベット順に並べ替えま す (gnus-group-sort-selected-groups-by-method)。

G P n

グループを本当の (前に何も付いていない) グループ名でアルファベット順に並 べ替えます (gnus-group-sort-selected-groups-by-real-name)。

G P s

グループを gnus-group-sort-function に従って並べ替えます。

最後に、C-kC-y を使って、手動でグループをあちこちに移動 できることもお忘れなく。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.13 グループの管理

b

不正なグループを見つけて、削除しま す (gnus-group-check-bogus-groups)。

F

新しいグループを見つけて、それらを処理しま す (gnus-group-find-new-groups)。一回の C-u の後で押される と、サーバーに新しいグループを尋ねるために ask-server の方法を使 います。二回の C-u の後で押されると、サーバーに新しいグループを尋 ねるために最も完全であると思われる方法を用い、新しいグループをゾンビとし て購読します。

C-c C-x

現在のグループの期限切れ消去可能な記事に対して (もしあれば) すべて期限切 れ消去の処理を行ないます (gnus-group-expire-articles)。これは、そ のグループにしばらく存在していた期限切れ消去可能なすべての記事を消去する ということです。(see section メールの期限切れ消去)。

C-c C-M-x

すべてのグループのすべての期限切れ消去可能な記事に対して、期限切れ消去の 処理を行ないます。(gnus-group-expire-all-groups)。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.14 外部サーバーの閲覧

B

選択方法とサーバー名を聞かれます。Gnus はこのサーバーに接続し、そこにあ るグループを閲覧しようとします (gnus-group-browse-foreign-server)。

利用可能なグループのリストを持った新しいバッファーが現れます。このバッファー は gnus-browse-mode を使用します。このバッファーは通常のグループ バッファーにちょっと (というか、とっても) 似ています。

以下が閲覧モード (browse mode) で使用できるキー操作のリストです:

n

次のグループに移動します (gnus-group-next-group)。

p

一つ前のグループに移動します (gnus-group-prev-group)。

SPACE

現在のグループに入り、最初の記事を表示しま す (gnus-browse-read-group)。

RET

現在のグループに入ります (gnus-browse-select-group)。

u

現在のグループを非購読にします。と言うよりは (訳注: このコマンドはトグル なので)、この場合は購読することになるのでしょうけれ ど (gnus-browse-unsubscribe-current-group)。新しいグループをグルー プバッファーに編入する方法を、変 数 gnus-browse-subscribe-newsgroup-method を使って制御することが できます。利用できるオプションについては: See section 購読方法.

l
q

閲覧モード (browse mode) を終了します (gnus-browse-exit)。

d

現在のグループを購読にします (gnus-browse-describe-group)。

?

閲覧モード (browse mode) を簡単に説明します (まあ、大して説明することも ないんですけれどね) (gnus-browse-describe-briefly)。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.15 Gnus の終了

そう、Gnus は最後 (サイコー) です (訳注: く、苦しい。原文は“Yes, Gnus is ex(c)iting.”)。

z

Gnus を中断します (gnus-group-suspend)。これは Gnus を実際には終 了させず、グループバッファー以外のすべてのバッファーを消すだけです。僕は これのうれしさがよくわかんないんだけど、誰か分かる人います?

q

Gnus を終了します (gnus-group-exit)。

Q

.newsrc’ ファイルを保存せずに Gnus を終了しま す (gnus-group-quit)。ドリブルファイルは保存されますけれ ど (see section 自動保存)。

Gnus を中断するときは gnus-suspend-gnus-hook が呼び出されます。 Gnus を終了するときは gnus-exit-gnus-hook が呼び出され、さら に Gnus を終了するときの最後とし て gnus-after-exiting-gnus-hook が呼び出されます。

Note:

ミス Lisa Cannifax は英語の授業中、後ろに座っている少年が彼女のプラスティッ クの椅子の背越しに、鉛筆で繰り返し線を描くのにつられて、足がしびれて重く なり、意識が朦朧としてきました。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16 Group Topics

もしあなたがたーくさんのグループを読んでいるのであれば、グループをトピッ ク毎に階層分けできると便利でしょう。Emacs のグループをこっちへ、セックス のグループをあっちへ、で、残りを (え? グループが二つくらいしかない の?) 邪魔にならないようにその他のセクションに入れましょう。あるい は Emacs セックスのグループを Emacs グループ、セックスグループのどちらか の副トピックとすることさえもできます—あるいは両方に! すんごいでしょう!

これが例です:

 
Gnus
  Emacs -- こいつはすげーぜ!
     3: comp.emacs
     2: alt.religion.emacs
    えっちな Emacs
     452: alt.sex.emacs
       0: comp.talk.emacs.recovery
  その他
     8: comp.binaries.fractals
    13: comp.sources.unix

この 素晴らしい 機能を使うには、gnus-topic マイナーモード を (何と!) 単にスイッチオンするだけ—グループバッファーで、t を押 してください (これはトグルコマンドです)。

さあやってみよう。とにかく試してみて。君が戻ってくるまで、僕はここで待っ てるからさ。ララ、タララン…、いい曲だね、これ…ラ、ラ、 ラ…え? 戻ってきた? よし、じゃ次は l を押してみて。ほら。これ ですべてのグループが ‘misc’ の下に表示されました。興奮してクラクラ してこない? アツくって、いまいましいくらいでしょ?

これをずっと有効にしたければ、グループモードのフックにこのマイナーモード を追加してください。以下の行を ‘~/.gnus.el’ ファイルに入れて、ね。

 
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.1 トピック命令

トピックマイナーモードが有効であるときは、T サブマップが新しく利用 できるようになります。さらに標準キーの中でも、定義がちょっと変わるものが 少しあります。

だいたいにおいて、次のようなトピックの操作が可能です。まず第一に、あなた はトピックを作ることを望むでしょう。第二に、あなたはグループをトピックに 入れて、それらをあなたの好みの順序になるまで、あちこちに移動することを望 むでしょう。第三に行なう操作は、それらの一切合切を表示したり隠すことでしょ う。他のグループの概要を見やすくするために、あなたは副トピックやグループ によっては、トピックが隠れるようにする必要があるかもしれませんね。

ここには、あなたの好むやり方でトピックを設定するために必要になりそうな、 基本的なキーのリストがあります。

T n

新しいトピック名の入力を促し、それを作成しま す (gnus-topic-create-topic)。

T TAB
TAB

現在のトピックの「字下げ」を行ない、その前のトピックの副トピックにしま す (gnus-topic-indent)。接頭引数を与えると、反対にそのトピックの 字下げを回復 (un-indent) します。

M-TAB

現在のトピックの「字下げ回復」(un-indent) を行ない、それが現在の親の親の 副トピックになるようにします (gnus-topic-unindent)。

以下の二つのキーは、グループとトピックをあちこち移動するために使われます。 それらは、よく知られているカット&ペーストのように動作します。 C-k はカット、C-y はペーストです。もちろん、Emacs ではカット &ペーストではなくて kill & yank という用語を使いますが。

C-k

グループあるいはトピックを kill します (gnus-topic-kill-group)。 トピック内にあったグループもすべて、トピックと一緒に削除されます。

C-y

直前の kill されたグループあるいはトピックを yank しま す (gnus-topic-yank-group)。すべてのトピックは、すべてのグループ の前に yank されることに気を付けてください。

ですから、あるトピックをトピックのリストの先頭に移動するには、単にそこ で C-k を叩きます。これはカット&ペーストのカットに相当します。そ うしたらカーソルをバッファーの先頭 (“Gnus”トピックの真下) に移動して、 C-y を叩いてください。これはカット&ペーストのペーストに相当します。 なあんだ、簡単じゃん。

C-kC-y はトピックと同様にグループにも使えます。すなわち、 あなたはグループと同じようにトピックの移動もできるのです。

あなたの望みのままにトピックを使えるようにした後で、あなたはトピックを隠 したり再び見えるようにしようと思うでしょう。そのために以下のキーを用意し ています。

RET
SPACE

グループを選択するか、あるいはトピックを折りたたみま す (gnus-topic-select-group)。グループの上でこのコマンドを実行す ると、通常通りそのグループに入ります。トピック行の上で行なうと、そのトピッ クは (すでに表示されているときは) 折りたたまれるか、(すでに折りたたまれ ているときは) 展開されます。つまりトピックに対してはこれはトグルコマンド です。さらに、数値の接頭引数を与えると、そのレベル (とそれよりも小さいレ ベル) のグループが表示されます。

さてお次は、他のコマンドのリストです。順序には特に意味はありません。

T m

現在のグループを、どこか他のトピックに移動させま す (gnus-topic-move-group)。このコマンドはプロセス印/接頭引数の習 慣に従います (see section プロセス/接頭引数)。

T j

トピックにジャンプします (gnus-topic-jump-to-topic)。

T c

現在のグループを、どこか他のトピックにコピーしま す (gnus-topic-copy-group)。このコマンドはプロセス印/接頭引数の習 慣に従います (see section プロセス/接頭引数)。

T h

現在のトピックを隠します。接頭引数が与えらると、そのトピックを永久に隠し ます。

T s

現在のトピックを表示します。接頭引数が与えられると、そのトピックを永久に 表示します。

T D

グループを現在のトピックから削除します (gnus-topic-remove-group)。 この命令は主にいくつかのトピックに同じグループがあって、それをトピックの 一つから取り除きたいときに役立ちます。あなたはグループをすべてのトピック から取り除くかもしれませんが、その場合は、Gnus はあなたが次回に Gnus を 起動したときにそれをルートトピックに付け加えます。実際のところ、すべての 新しいグループ (もちろん、それはどのトピックにも属していません) はルート トピックに現われます。

この命令はプロセス印/接頭引数の習慣に従います (see section プロセス/接頭引数)。

T M

正規表現に合致するすべてのグループを、あるトピックに移動させま す (gnus-topic-move-matching)。

T C

正規表現に合致するすべてのグループを、あるトピックにコピーしま す (gnus-topic-copy-matching)。

T H

空のトピックの表示・非表示を切り替えま す (gnus-topic-toggle-display-empty-topics)。

T #

現在のトピックにあるグループすべてにプロセス印を付けま す (gnus-topic-mark-topic)。接頭引数が与えられない場合、このコマ ンドは副トピックに対して再帰的に働きます。

T M-#

現在のトピックにあるすべてのグループからプロセス印を消しま す (gnus-topic-unmark-topic)。接頭引数が与えられない場合、このコ マンドは副トピックに対して再帰的に働きます。

C-c C-x

(もしあれば) 現在のグループかトピックかのすべての期限切れ消去可能記事を 期限切れ消去します (gnus-topic-expire-articles)。(see section メールの期限切れ消去)。

T r

トピックの名前を変更します (gnus-topic-rename)。

T DEL

空のトピックを削除します (gnus-topic-delete)。

A T

Gnus が知っているトピック化されたグループをすべて表示しま す (gnus-topic-list-active)。

T M-n

次のトピックに移動します (gnus-topic-goto-next-topic)。

T M-p

前のトピックに移動します (gnus-topic-goto-previous-topic)。

G p

トピックパラメーターを修正します (gnus-topic-edit-parameters)。 See section トピックパラメーター.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.2 トピック変数

前の章では、どのトピックを表示するかを Gnus に言う方法を説明しました。 この章では、それぞれのトピックの何を表示するかを Gnus に言う方法を説明し ます。

トピック行それ自体は、gnus-topic-line-format 変数の値に従って作成 されます (see section 書法仕様変数)。有効な要素は、

i

字下げ。

n

トピック名。

v

見えるかどうか。

l

レベル。

g

トピック中のグループの数。

a

トピック中の未読記事の数。

A

トピックとすべての副トピックの未読記事の数。

各副トピック (と副トピック内のグループ) は、トピックレベル数 の gnus-topic-indent-level 倍の空白分の字下げが行なわれます。ディ フォルトは 2 です。

gnus-topic-mode-hook はトピックマイナーモードバッファーで呼び出さ れます。

gnus-topic-display-empty-topics はトピックの中に未読記事が無い場 合でもそのトピックを表示するようにします。ディフォルトは t です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.3 トピックの並べ替え

以下に示す命令で、各トピック毎に別々にグループを並べ替えることができます:

T S a

現在のトピックをグループ名のアルファベット順に並べ替えま す (gnus-topic-sort-groups-by-alphabet)。

T S u

現在のトピックを未読記事の数で並べ替えま す (gnus-topic-sort-groups-by-unread)。

T S l

現在のトピックをグループのレベルで並べ替えま す (gnus-topic-sort-groups-by-level)。

T S v

現在のトピックをグループのスコアで並べ替えま す (gnus-topic-sort-groups-by-score)。See section グループのスコア.

T S r

現在のトピックをグループのランクで並べ替えま す (gnus-topic-sort-groups-by-rank)。See section グループのスコア.

T S m

現在のトピックをバックエンドの名前でアルファベット順に並べ替えま す (gnus-topic-sort-groups-by-method)。

T S e

現在のトピックをサーバーの名前でアルファベット順に並べ替えま す (gnus-topic-sort-groups-by-server)。

T S s

現在のトピックを、変数 gnus-group-sort-function で与えられる関数 に従って並べ替えます (gnus-topic-sort-groups)。

接頭引数が与えられると、これらすべてのコマンドは逆順の並べ替えを行ないま す。グループの並べ替えについてのさらなる情報は グループの並べ替え を参 照してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.4 トピックの位相構造

それでは、グループバッファーの例を見ていきましょう。

 
Gnus
  Emacs -- こいつはすげーぜ!
     3: comp.emacs
     2: alt.religion.emacs
    えっちな Emacs
     452: alt.sex.emacs
       0: comp.talk.emacs.recovery
  その他
     8: comp.binaries.fractals
    13: comp.sources.unix

つまり、ここでは一つのトップレベルのトピック (‘Gnus’) があり、その 下に二つのトピックがあり、そのうちの一方の副トピック中に一つ副トピックが あります (トップレベルトピックは常に一つしかありません)。この構造は、以 下のように表現できます:

 
(("Gnus" visible)
 (("Emacs -- こいつはすげーぜ!" visible)
  (("えっちな Emacs" visible)))
 (("その他" visible)))

これは実に、上記の表示を行なうための、変数 gnus-topic-topology の 値そのものなのです。この変数は ‘.newsrc.eld’ ファイルに保存され、手 でいじくり回してはいけません—本当にやりたいときは別ですが。この変数 は ‘.newsrc.eld’ ファイルから読み込まれるので、その他のスタートアッ プファイルの設定にはまったく影響を与えません。

この構造は、どのトピックがどのトピックの副トピックであるかと、どのトピッ クが表示されているかを示しています。現在は二つの設定 値—visibleinvisible を使うことができます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.5 トピックパラメーター

トピック内のすべてのグループはグループパラメーターを、その親 (と先祖) の トピックパラメーターから継承します。グループパラメーターとして正しいもの はすべて、トピックパラメーターとしても正しいもので す (see section グループパラメーター)。エージェントを使うようにしてあると、すべ てのエージェントパラメー ター (分類の文法 の Agent Parameters を参照 (訳注: 必要な ら Index を使って)) は有効なトピックパラメーターでもあります。

さらに、以下のパラメーターはトピックパラメーターとしてのみ有効です:

subscribe

トピックで新しいグループを購読し始める場 合 (see section 購読方法) に、どのグループがどのトピックに行くか を subscribe トピックパラメーターで指定します。値はそのトピックに 行くグループに合致する正規表現である必要があります。

subscribe-level

トピックで新しいグループを購読し始める場 合 (subscribe パラメーターを参照)、そのグループの購読度のレベル は gnus-level-default-subscribed の代わり に subscribe-level トピックパラメーターの値になります。

グループパラメーターは (もちろん) トピックパラメーターよりも優先され、副 トピックのトピックパラメーターは親トピックのトピックパラメーターよりも優 先されます。分かるよね。ごく普通の継承ルールで す (ルール (Rules) はここでは名詞であって、動詞の「線を引く」では ありません。このルールには反対したくなるかもしれないけど、それはご自由に)。

 
Gnus
  Emacs
     3: comp.emacs
     2: alt.religion.emacs
   452: alt.sex.emacs
    息抜き
     452: alt.sex.emacs
       0: comp.talk.emacs.recovery
  その他
     8: comp.binaries.fractals
    13: comp.sources.unix
   452: alt.sex.emacs

Emacs’ トピックはトピックパラメー ター (score-file . "emacs.SCORE") を持っています。 ‘息抜き’ トピックはトピックパラメー ター (score-file . "relief.SCORE") を持ち、 ‘その他’ トピックはトピックパラメー ター (score-file . "emacs.SCORE") を持っています。 さらに、‘alt.religion.emacs’ はグループパラメー ター (score-file . "religion.SCORE") を持っています。

さて、ここで ‘息抜き’ トピックの ‘alt.sex.emacs’ グループに入っ たとき、‘relief.SCORE’ が基本スコアファイルとなります。も し ‘Emacs’ トピックの同じグループに入ると、‘emacs.SCORE’ が基 本スコアファイルになるでしょう。 ‘alt.religion.emacs’ グループに入れば、‘religion.SCORE’ が基本 スコアファイルになるでしょう。

これってとっても簡単で自明のことのように見えるでしょ? まあ、その通りです。 ですが問題がある場合もあります。特に total-expiry パラメーターに 関してです。例えばあるメールグループを二つのトピックの中に、一方 は total-expiry ありで、もう一方はそれなしで持っているとしましょ う。ここで M-x gnus-expire-all-expirable-groups を実行すると、何が 起こるでしょうか? Gnus は、あなたがどちらのトピックから記事を期限切れ消 去したいのかを知る方法がないため、最悪の事態が発生するかもしれません。実 際、私はこのとき何が起こるのかは「未定義 undefined」である、とここ に宣言します。この手のことをやりたい場合には十分注意しなければなりません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17 英字以外の名前のグループへのアクセス

世界には、それぞれの母国語で表した名前のグループを提供するニュースサーバー があります。例えば、あるニュースサーバーには名前が中国語で綴られたニュー スグループがあって、そこで人々は中国語で話をしています。もちろん Gnus で そのようなニュースグループを講読することは可能です。Gnus は現 在 nntp バックエンドだけでなく nnml バックエンド と nnrss バックエンドで非-ASCII グループ名をサポートし ています。

すべてのそのようなグループ名は、サーバー側で、ある文字セットでエンコード されています (NNTP サーバーでは管理者が文字セットを決めますが、 他のバックエンドのグループではあなたがそれを決めます)。Gnus はあなたのた めにグループバッファーと記事バッファーでデコードされたものを表示しなけれ ばなりませんし、サーバーと通信するときはエンコードされたものを使う必要が あります。しかし Gnus は、各々の非-ASCII グループ名にどんな文 字セットが使われているかを知りません。以下の二つの変数は、まさに各グルー プでどんな文字セットを使うべきかを Gnus に伝えるためのものです:

gnus-group-name-charset-method-alist

選択方法と文字セットの連想リストです。ディフォルト値は nil です。 その選択方法で指定されるサーバーにあるグループの名前は、すべてその対応す る文字セットを使うものと仮定されます。例です:

 
(setq gnus-group-name-charset-method-alist
      '(((nntp "news.com.cn") . cn-gb-2312)))

この変数でグループに指定された文字セットは、同じグループ に gnus-group-name-charset-group-alist 変数で指定されたものより優 先されます (下記参照)。

選択方法は非常に長くなる場合がありますね。このように:

 
(nntp "gmane"
      (nntp-address "news.gmane.org")
      (nntp-end-of-line "\n")
      (nntp-open-connection-function
       nntp-open-via-rlogin-and-telnet)
      (nntp-via-rlogin-command "ssh")
      (nntp-via-rlogin-command-switches
       ("-C" "-t" "-e" "none"))
      (nntp-via-address …))

そのような場合、この変数の中では (nntp "gmane") に切り詰めること ができます。つまり、バックエンド名とサーバー名だけを含んでいれば十分です。

gnus-group-name-charset-group-alist

グループ名の正規表現と、それに合致するグループのための文字セットの連想リ ストです。UTF-8 がサポートされている場合は ((".*" utf-8)) がディ フォルト値で、それ以外の場合のディフォルトは nil です。例です:

 
(setq gnus-group-name-charset-group-alist
      '(("\\.com\\.cn:" . cn-gb-2312)
        (".*" . utf-8)))

gnus-group-name-charset-method-alist で合致した場合、この変数は無
視されることに注意してください。

これら二つの変数は nntp 以外のバックエンドにある 非-ASCII 名のグループをエンコードおよびデコードする文字セット を決定するためにも使われます。つまり、それを決めるのはあなたです。何もし なければそれらのバックエンドのグループ名で使われる文字セットは、 gnus-group-name-charset-group-alist の最後の素子のせいですべ て utf-8 になるでしょう。

さて、非-ASCII グループ名のための重要な変数がもう一つあります:

nnmail-pathname-coding-system

この変数の値は coding system もしくは nil でなければなりません。 ディフォルトは Emacs では nil、または XEmacs で は file-name という coding system の aliasee (file-name を 別名に持つ、ある coding system) です。

nnml バックエンド、nnrss バックエンド、 NNTP 印 (see section NNTP marks)、エージェント、およびキャッシュは、 それらのファイルとディレクトリーで非-ASCII グループ名を使いま す。この変数は、それらのファイル名とディレクトリー名をエンコードおよびデ コードするときに用いられる coding system を指定す る file-name-coding-system の値を上書きします。

XEmacs (mule 機能付き) では、file-name-coding-system はファ イル名をエンコードおよびデコードするのに用いられる coding system を指定 する唯一の手段です。一方 Emacs は file-name-coding-system の値 が nil だった場合、または nil であ る nnmail-pathname-coding-system の値にそれが束縛される場合、 default-file-name-coding-system の値を使用します。

通常 Emacs における default-file-name-coding-system または XEmacs における nnmail-pathname-coding-system の値は言語環境に従って初期 化されるので、その値が非-ASCII グループ名をエンコードおよびデ コードするために適切であれば、何もする必要は無いでしょう。

この変数 (または default-file-name-coding-system) の値は、必ずし も gnus-group-name-charset-method-alist およ び gnus-group-name-charset-group-alist によって決定される値と同じ である必要はありません。

例えば中国語で綴られたニュースグループを講読したいのに、 default-file-name-coding-system またはこの変数がディフォルト で iso-latin-1 に初期化されてしまうのならば、それ は nnmail-pathname-coding-system をカスタマイズしなければならない 最も典型的な場合です。utf-8 coding system はそのための良い候補で す。あるいは default-file-name-coding-system またはこの変数が適切 な値に初期化されるように、あなたのシステムの言語環境を変更しても良いでしょ う。

記事を非-ASCII グループから他のグループにコピーまたは移動する 場合、グループ名をエンコードおよびデコードするための文字セットが両方のグ ループで同じでなければならないことに注意してください。さもないと記事バッ ファーに Newsgroups ヘッダーが正しく表示されないでしょう。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.18 その他のグループ関連

v

v キーはユーザー用に予約されています。そのまま何かのコマンドに割り 当てても構いませんが、接頭キーとして使う方が良いでしょう。例です:

 
(define-key gnus-group-mode-map (kbd "v j d")
  (lambda ()
    (interactive)
    (gnus-group-jump-to-group "nndraft:drafts")))

Emacs でユーザー用に予約されているキーとキーバインドについては、 See Keymaps: (emacs)Keymaps section ‘Keymaps’ in The Emacs Editor.

^

サーバーバッファーモードに入ります (gnus-group-enter-server-mode)。 See section サーバーバッファー.

a

メッセージ (ディフォルトはニュース) の作成を開始しま す (gnus-group-post-news)。接頭引数が与えられると、現在位置のグルー プに投稿します。もし接頭引数が 1 だったら、どのグループに投稿するかを尋 ねます。この関数の名前から連想されることとは裏腹に、接頭引数でメールグルー プが指定された場合は、ニュースの代わりにメールの様式が用意されます。 See section メッセージの作成.

m

メールをどこかに送ります (gnus-group-mail)。接頭引数が与えられる と、現在位置のグループの投稿様式 (posting style) を使います。もし接頭引 数が 1 だったら、どのグループの投稿様式を使うかを尋ねます。 See section メッセージの作成.

i

ニュースの作成を開始します (gnus-group-news)。接頭引数が与えられ ると、現在位置のグループに投稿します。もし接頭引数が 1 だったら、どのグ ループに投稿するかを尋ねます。See section メッセージの作成.

この関数は、たとえメールグループで使われたとしても、実際にはニュースの様 式を用意します。これは、メッセージを実際にはネットワーク経由で送らずに、 メールグループに「投稿」するのに便利です; それらは当のグループに単に直接 保存されます。対応するバックエンドが投稿のためのメソッド (request-post method) を持っていなければなりませんが。

G z

現在位置のグループを圧縮します (gnus-group-compact-group)。今のと ころ nnml (see section メールスプール) だけに実装されています。これは記事 番号のすきまを取り除くので、正しい全記事数を得ることができるようになりま す。

以下はグループバッファーのための変数です:

gnus-group-mode-hook

グループバッファーが作成された時に呼び出されます。

gnus-group-prepare-hook

グループバッファーが生成されたあとに呼び出されます。これはバッファーを何 か変な、自然ではない方法で修正したいときに使われるかもしれません。

gnus-group-prepared-hook

グループバッファーが生成された後の一番最後に呼び出されます。例えばポイン トをどこかに移動させたいときなどに使えます。

gnus-permanently-visible-groups

この正規表現に合致するグループは、それが空であるかどうかに関わらず、常に グループバッファーに表示されます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.18.1 新着メッセージを探す

g

サーバーの新着記事をチェックします。数値の接頭引数を使用すると、この命令 は引数 arg かそれより小さいレベルのグループのみをチェックしま す (gnus-group-get-new-news)。数値以外の接頭引数を与えると、この 命令はそのバックエンドからアクティブファイルを強制的に全部読み直します。

M-g

現在のグループに新着記事があるかどうかをチェックしま す (gnus-group-get-new-news-this-group)。 gnus-goto-next-group-when-activating はこの命令が次のグループ位置 へ移動するかどうかを決めます。ディフォルトは t です。

C-c M-g

無条件にすべてのグループを起動します (gnus-activate-all-groups)。

R

Gnus を再起動します (gnus-group-restart)。これ は ‘.newsrc’ ファイルをセーブし、すべてのサーバーの接続を閉じ、すべ ての Gnus ランタイム変数をクリアした後、Gnus をもう一度最初から開始しま す。

gnus-get-new-news-hook は新着ニュースをチェックする直前に実行され ます。

gnus-after-getting-new-news-hook 新着ニュースをチェックした後に実 行されます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.18.2 グループ情報

H f

現在のグループの FAQ を取得しようとしま す (gnus-group-fetch-faq)。 Gnus は FAQgnus-group-faq-directory から取得しよう とします。これは通常リモートマシン上のディレクトリーです。この変数はディ レクトリーのリストであっても構いません。この場合、このコマンドに接頭引数 を与えることでいくつかのサイトの中から選ぶことができます。ファイルの取得 には ange-ftp (または efs) が使用されます。

もし最初のサイトからの取得が失敗した場合、 Gnus は gnus-group-faq-directory の値をすべて、一つ一つオープンし てみようとします。

H d
C-c C-d

現在のグループの説明を表示します (gnus-group-describe-group)。接 頭引数を与えると、説明文をサーバーから強制的に再読み込みします。

M-d

すべてのグループの説明を表示しま す (gnus-group-describe-all-groups)。接頭引数を与えると、説明文ファ イルをサーバーから強制的に再読み込みします。

H v
V

現在の Gnus のバージョン番号を表示します (gnus-version)。

?

とても短いヘルプメッセージを与えま す (gnus-group-describe-briefly)。

C-c C-i

Gnus の info ノードに移動します (gnus-info-find-node)。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.18.3 グループの日付

Gnus に、あなたが最後にいつグループを読んだかを記録させると便利かもしれ ません。この活動を始めさせるには、 gnus-group-set-timestampgnus-select-group-hook に追加 してください。

 
(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)

これを行なった後、あなたがグループに入るたびにそれが記録されます。

この情報はさまざまな方法で表示できます—もっとも簡単なのは、グループ行 フォーマットで ‘%d’ 指定を使う方法です:

 
(setq gnus-group-line-format
      "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")

この結果として、各行は以下のように表示されます:

 
*        0: mail.ding                                19961002T012943
         0: custom                                   19961002T012713

見て分かるとおり、日付はコンパクトな ISO 8601 形式で表示されます。 これではちょっとあんまりなので、以下のような感じにすると日付だけ を表示できます。

 
(setq gnus-group-line-format
      "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")

もっと凝った日付の形式をお望みなら、利用者定義によるフォーマットの仕様を 使うことができます。以下のようなものはうまくいくでしょう:

 
(setq gnus-group-line-format
      "%M\%S\%p\%P\%5y: %(%-40,40g%) %ud\n")
(defun gnus-user-format-function-d (headers)
  (let ((time (gnus-group-timestamp gnus-tmp-group)))
    (if time
        (format-time-string "%b %d  %H:%M" time)
      "")))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.18.4 ファイル命令

r

初期化ファイルの再読み込みを行ないます (gnus-init-file、ディフォ ルトは ‘~/.gnus.el’) (gnus-group-read-init-file)。

s

.newsrc.eld’ ファイル (と、もしそうしたければ ‘.newsrc’ ファ イル) をセーブします (gnus-group-save-newsrc)。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.18.5 Sieve コマンド

Sieve はサーバー側で使われるメールフィルター言語です。Gnus では、各グルー プに適用される sieve の規則を指定する、sieve グループパラメー ター (see section グループパラメーター) を使うことができます。guns はそれらすべ てのグループパラメーターを、サーバーで使うことも可能な正しい Sieve スク リプトに翻訳する、二つのコマンドを提供します。

作成された Sieve スクリプトは gnus-sieve-file (ディフォルト は ‘~/.sieve’) に置かれます。Gnus が作るコードは二つの区切り記 号 gnus-sieve-region-startgnus-sieve-region-end の間に 置かれるので、これらの区切り記号の外に追加の Sieve コードを書いても、次 回 Sieve スクリプトを再作成するときに消されてしまうことはありません。

変数 gnus-sieve-crosspost は Sieve スクリプトがどのように作られる かを制御します。もし非-nil (ディフォルト) だったら記事は規則に合 致するすべてのグループに置かれます。そうでない場合、記事は最初の規則に合 致するグループだけに置かれます。例えばグループパラメーター ‘(sieve address "sender" "owner-ding@hpc.uh.edu")’ は、 gnus-sieve-crosspostnil だったら以下の Sieve コードの 断片を作ります。(gnus-sieve-crosspost が非-nil だった場合 は、行が含む stop の呼び出しが削除されること以外は同じです。)

 
if address "sender" "owner-ding@hpc.uh.edu" {
        fileinto "INBOX.ding";
        stop;
}

See Emacs Sieve: (sieve)Top section ‘Top’ in Emacs Sieve.

D g

sieve グループパラメーターから Sieve スクリプトを再作成して、 gnus-sieve-file に書き込みます。以前の内容は保存されません。

D u

sieve グループパラメーターを元 に gnus-sieve-file の Gnus が管理している部分を再作成してファイル にセーブし、sieveshell プログラムを使ってサーバーにアップロードし ます。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Yasutaka SHINDOH on May 11, 2011 using texi2html 1.82.