[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
XEmacs はパッケージの集合として配布されています。Gnus の XEmacs パッケー ジが必要とするものは何であれ、あなたはインストールすべきです。今のところ 必要なのは `gnus', `mail-lib', `xemacs-base', `eterm', `sh-script', `net-utils', `os-utils', `dired', `mh-e', `sieve', `ps-print', `W3', `pgg', `mailcrypt', `ecrypto' および `sasl' です。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
GNUS は梅田政信氏によって書かれました。1994年の秋が忍び寄ってくるこ ろ、退屈していたラルス・マッグヌ・イングブリグットスン (Lars Magne Ingebrigtsen) は Gnus を書き直そうと決心しました。
この非道な行為の責任者を調べてみたいのなら、あなたの (いまいましい!) ウェ ブブラウザーを http://quimby.gnus.org/ に向けることができます。こ れは新しくて粋な版の Gnus の第一配布場所で、Newsrc をぶっ壊して人々を激 怒させるサイトとしても知られています。
最初のアルファ版の開発期間に、新しい Gnus は“(ding) Gnus”と呼ばれてい ました。(ding) はもちろん、ding is not Gnus の短縮形で、これ はまったく完全な嘘ですが、だれがそんなことを気にするでしょうか? (ところ で、この短縮形の“Gnus”はおそらく梅田さんの意図通り「ニュース」と発音さ れるべきで、そうするともっと適切な名前になります。そう思いませんか?)
どちらにせよ、すべてのエネルギーを新しい元気の良い名前を付けるのに使い果 たした後で、その名前は あまりに 元気が良すぎるということになり、 それを“Gnus”と再び命名しました。でも、今回は大文字と小文字を混ぜていま す。“Gnus”と“GNUS”です。新しいもの と 古いもの。
11.2.1 Gnus Versions どんなバージョンの Gnus がリリースされているか 11.2.2 なぜ? Gnus の目的は何? 11.2.3 互換性 Gnus は GNUS とどれくらい互換性があるの? 11.2.4 標準への準拠 Gnus はすべての標準を満たそうとする 11.2.5 Emacsen Gnus は少数の現代的な Emacs で実行できる 11.2.6 Gnus の開発 11.2.7 貢献者 11.2.8 新しい機能 Gnus の新しいことに関する手がかり
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
最初の「正しい」Gnus 5 のリリースは 1995年11月に Emacs 19.30 の配布に含 まれたときになされました (132 の (ding) Gnus のリリース 足すこと の Gnus 5.0 の 15 リリース)。
1996年3月に次の世代の Gnus (別名“September Gnus”(99 リリースの後 で)) が“Gnus 5.2”という名前でリリースされました (40 リリース)。
1996年の 7月28日に Red Gnus の作業が始まり、それは 1997年1月25日 に (84 リリースの後で)“Gnus 5.4”としてリリースされました (67 リリース)。
1997年9月13日に、Quassia Gnus が開始され、37 リリース続きました。それは “Gnus 5.6”として 1998年3月8日にリリースされました (46 リリース)。
1998年8月29日に Gnus 5.6 から Pterodactyl Gnus が生まれ、1999年12月3日 に (99 リリースと CVS リポジトリでの作業の後)“Gnus 5.8”としてリリース されました。
2000年10月26日に Oort Gnus が開始され、2003年5月1日に Gnus 5.10 としてリ リースされました (24 リリース)。
2004年1月4日に No Gnus が始まりました。
2010年4月19日、Gnus の開発は Git に移行しました。詳細 は http://git.gnus.org を見てください (可能なら http://www.gnus.org はそ の情報で更新されるでしょう。)
2012年1月31日、Ma Gnus が始まりました。
接頭語を持った版の Gnus---“(ding) Gnus”,“September Gnus”,“Red Gnus”,“Quassia Gnus”,“Pterodactyl Gnus”,“Oort Gnus”,“No Gnus”,“Ma Gnus”---に出会っても、混乱しないでください。あなたが恐がっ ていることを知られてはいけません。後ろに下がりなさい。ゆっくりと。他に何 をしても、走ってはいけません。それが届かくなるまで、静かに歩き去りなさい。 正しくリリースされた版の Gnus を見つけて、代わりにそれにすり寄りなさい。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus の目的は何ですか?
私は、あなたの考え付くことをすべてできる「いかす」「盛り上がってる」「かっ こいい」「しゃれた」ニュースリーダーを提供したいと思います。これは私の大 元の動機だったのですが、Gnus の作業をしている間に、この世代のニュースリー ダーは本当に石器時代に属していることが明らかになりました。ニュースリーダー は、インターネットの揺籃期からほとんど発展していませんでした。もし現在の 増加率で流通量が増加しつづければ、すべての現在のニュースリーダーはまった く役に立たなくなるでしょう。毎日何千もの新しい記事がやってくるニュースグ ループを扱うにはどうすれば良いのでしょう? 数百万の投稿者に遅れないように 付いていくにはどうすれば良いのでしょう?
Gnus はこれらの質問に真の解決を提供するわけではありませんが、私 は Gnus がニュースを読み、取得するための新しい方法を実験する場として使わ れることを、是非とも見届けたいのです。ニュースリーダーをバックエンドから 分離するという梅田さんの賢明な方針を拡張することによって、今や Gnus はメー ルを取得したり、異なる出所からニュースを取得するための新しいバックエンド を書きたい人のために、シンプルなインターフェースを提供しています。私は役 に立ちそうなすべての場所に、カスタマイズのためのフックを加えました。それ によって、探検し、発明したいすべての人を招いているのです。
おそらく Gnus は完成することはないのかもしれません。 C-u 100 M-x all-hail-emacs と C-u 100 M-x all-hail-xemacs で す。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は GNUS と完全に互換性があるように設計されています。ほとんどす べてのキーの割り当てはそのまま残っています。もちろん、多くのキーの割り当 てが追加されましたが、一つか二つの目に付かないものを除いて、古い割り当て が変更されたことはありません。
私たちのモットーは:
鋼鉄の骨組みの空高く
です。(訳注: チャールズ・レズニコフの詩“The Bridge”の引用。この詩の本 体はたった一行“In a cloud bones of steel.”だけ。直訳すれば「雲の中に鋼 の骨たち」。)
すべての命令は名前が変わっていません。いくつかの内部関数は名前を変えまし た。
gnus-uu
パッケージは劇的に変化しています。See 節 3.17 記事のデコード.
主要な互換性の問題の一つは、複数の概略バッファーが存在することです。グルー プを読んでいるときに関連するすべての変数は、それが属する概略バッファーで バッファーローカルです。概略バッファーでコマンドが実行されるときはいつで も、多くの重要な変数がそれのグローバルな値にも複製されますが、あなたが注 意していないと、その変更は正しくない値が使われることをもたらすかもしれま せん。
GNUS の内部の知識に依存したすべてのコードは実行できないでしょう。二 つ例を挙げます: gnus-newsrc-alist
の並べ替え (もしくは、実際は何 らかの方法でそれを変更すること) は厳しく禁止されています。Gnus はこの連 想リストの項目を指し示すハッシュテーブルを維持しており (それは多くの関数 の速度を上げます)、直接連想リストを変更することは異常な結果をもたらすで しょう。
古い hilit19 のコードはまったく動作しません。実際のところ、おそらくすべ ての hilit コードをすべての Gnus のフッ ク (gnus-group-prepare-hook
およ び gnus-summary-prepare-hook
) から取り除くべきです。Gnus はハイラ イトのためのいろいろな統合された関数を提供します。これらはもっと速くもっ と正確です。すべての人の人生を楽にするために、Gnus はディフォルトですべ ての hilit フックからすべての hilit 呼び出しを取り除きます。きたないも の! 失せろ!
expire-kill
のようなパッケージはもう動作しません。実際 Gnus を使 い始めたときには、おそらくすべての古い GNUS パッケージ (と他のコー ド) を消去するべきでしょう。GNUS に実行させるために書いたコードは、 Gnus がすでに実行しているということは良くあることです。(くすくす。)
ものごとを実行する古いやり方はまだ使うことができますが、新しいやり方だけ がこのマニュアルに記載されています。もしこのマニュアルを読んでいる間に何 かをする新しいやり方を発見しても、古いやり方を止めなければならないという ことではありません。
Gnus はすべての GNUS の起動ファイルを理解します。
全体として、GNUS の内部に依存したコードをほとんど書いていない普通の 利用者は、問題に苦しむことはないでしょう。もし問題が起こったら、魔法 の M-x gnus-bug 命令を実行することによって私に知らせてください。
非常に よくバグ報告を送る習慣があるのなら、あなたの役に立とうとす る help バッファーが、しばらくするとうるさく感じるかもしれません。そうな らば、それが表示されないようにするために、 gnus-bug-create-help-buffer
を nil
に設定してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
理由無き反抗などと申すものはございませんよ、奥様。私たちはすべての知られ ている標準に準拠しています。もちろん私たちが賛成できない標準と/もしくは 習慣は除きますが。
tin
と Netscape
から送られてくる非常に多 くの酷い記事を見た後では、私は記事を投稿するためにはそれらを使わない方が 良いということを知っています。もし X-Newsreader
ヘッダーが無けれ ば、私はその情報を得ることはなかったでしょう。上に書かれている文章に関することで、Gnus がそれを満たしていないような動 作をしていることに気付いたら、ためらわずに Gnus タワーと私たちに知らせて ください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
このバージョンの Gnus は以下のもので動作します:
この Gnus の版はこれより古いどんな Emacsen でも完全に動作しないでしょう。 少なくとも信頼できる動作はしないでしょう。古い版の Gnus は古い Emacs の 版でも動作するでしょう。特に Gnus 5.10.8 は Emacs 20.7 と XEmacs 21.1 で も動くはずです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は二つのサイクルで開発されています。最初のサイクルでは開発メーリン グリスト `[email protected]' でたくさんの議論を行ないます。そこでは人々 が変更や新しい機能の提案をしたり、パッチや新しいバックエンドを投稿します。 この段階は「アルファ」段階と呼ばれています。というのは、この段階でリリー スされた Gnusae は「アルファリリース」もしくは (他の団体ではより良く使わ れる)「スナップショット」と呼ばれるものだからです。この段階では Gnus は 不安定で、一般の利用者によって使われるべきではないと考えられています。 Gnus のアルファリリースは“Oort Gnus”や“No Gnus”のような名前になって います。See 節 11.2.1 Gnus Versions.
のらくらと 10-100 くらいのアルファリリースをした後で、Gnus は「凍結」さ れたと宣言され、バグ修正のみが適用されます。Gnus は接頭語を失い、その代 わりに“Gnus 5.10.1”のように呼ばれます。これらは普通の人が使うことがで きるものと考えられ、主に `gnu.emacs.gnus' ニュースグループで議論さ れています。このニュースグループは `[email protected]' メー リングリストにミラーされていて、それは `gmane.emacs.gnus.user' とし て Gmane にも載っています。これらのリリースは最終的に Emacs に統合されま す。
アルファ版の Gnus とリリースされた版の Gnus ではいくつかの変数、特 に mail-source-delete-incoming
、のディフォルトが異なります。これ はメールを扱っている際に、アルファリリースがしゃっくりをしてメールを失な うことを避けるためです。See 節 6.4.4.3 メールソースのカスタマイズ.
ding メーリングリストと Gnus ニュースグループにおける議論は、純粋に公衆 の関心によって分離されているわけではありません。アルファ Gnus リリース が (ときどき) するかもしれない恐ろしいことを公衆の場で書くのは、皆を恐れ させるというのも真実ですが、もっと重要なことは、導入された新しい実験的な 機能について話すことが、一般の利用者を混乱させるかもしれないということで す。新しい機能は頻繁に導入され、いじくられ、不十分であると判断され、そう すると捨てられるか、完全に書き換えられるかのどちらかです。メーリングリス トを読んでいる人は普通はこの速い変更に付いていきますが、ニュースグループ の人もそうであると見なすことはできません。
したがってアルファ版の問題やそれに関する質問があるなら、それらは ding メー リングリスト `[email protected]' に向けてください。このリスト は Gmane に `gmane.emacs.gnus.general' としてもあります。
いくつかの変数、特に mail-source-delete-incoming
のディフォルト値 はアルファ Gnus とリリースされた Gnus で異なっています。これはアルファ版 がメールを扱っているときに、もし、しゃっくりをしても、メールが失われてし まうことを防ぐためです。 See 節 6.4.4.3 メールソースのカスタマイズ.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
新しい Gnus の版は (ding) メーリングリストのすべての人たちの助けが無けれ ばできなかったでしょう。一年以上にわたって、私は毎日彼らから莫大な数の素 敵なバグレポートを受け取り、そのそれぞれが私を喜びで満たしました。投げキッ ス。このリストの人たちは、私のリリース方針のために耐え難きを耐える試練に 遭いました: 「あぁ、それはすばらしい考えだ <かしゃかしゃかしゃ…> よしっ、 すぐにリリースだ <えいやっ> あれれっ、まったく動かないぞ <かしゃかしゃか しゃ…> よしっ、すぐに出そう <ほらよっ> おっと、待った、ぜんぜん動作しな い…」。Micro$oft---あっかんべーだ。アマチュアめ。私は もっと 悪 い。(それとも「より悪い」?「もっと悪い」?「最悪」?)
私はこの機会に学会に感謝を... おおっと、違った。
このマニュアル (Gnus 英語版) は Adrian Aichner と Ricardo Nassif, Mark Borges によって校正され、Jost Krieger によって一部分を校正されました。
以下の人々は多くのパッチと提案で貢献しました:
Christopher Davis, Andrew Eskilsson, Kai Grossjohann, Kevin Greiner, Jesper Harder, Paul Jarc, Simon Josefsson, David K,Ae(Bgedal, Richard Pieri, Fabrice Popineau, Daniel Quinlan, Michael Shields, Reiner Steib, Jason L. Tibbitts, III, Jack Vinson, 山岡 克美, and Teodor Zlatanov.
それと、以下の人にもパッチやその他のものを感謝します:
Jari Aalto, Adrian Aichner, Vladimir Alexiev, Russ Allbery, Peter Arius, Matt Armstrong, Marc Auslander, Miles Bader, Frank Bennett, Alexei V. Barantsev, Robert Bihlmeyer, Chris Bone, Mark Borges, Mark Boyns, Rob Browning, Lance A. Brown, Kees de Bruin, Martin Buchholz, Joe Buehler, Kevin Buhr, Alastair Burt, Joao Cachopo, Zlatko Calusic, Massimo Campostrini, Castor, David Charlap, Dan Christensen, Kevin Christian, Jae-you Chung, James H. Cloos, Jr., Laura Conrad, Michael R. Cook, Glenn Coombs, Andrew J. Cosgriff, Neil Crellin, Frank D. Cringle, Geoffrey T. Dairiki, Andre Deparade, Ulrik Dickow, Dave Disser, Rui-Tao Dong, Joev Dubach, Michael Welsh Duggan, Dave Edmondson, Paul Eggert, Mark W. Eichin, Karl Eichwalder, 榎並 嗣智, Michael Ernst, Luc Van Eycken, Sam Falkner, Nelson Jose dos Santos Ferreira, Sigbjorn Finne, Sven Fischer, Paul Fisher, Decklin Foster, Gary D. Foster, Paul Franklin, Guy Geens, Arne Georg Gleditsch, David S. Goldberg, Michelangelo Grigni, Dale Hagglund, D. Hall, Magnus Hammerin, 半田 剣一, Raja R. Harinath, 林 芳樹, P. E. Jareth Hein, ひさしげ けんじ, Scott Hofmann, Tassilo Horn, Marc Horowitz, Gunnar Horrigmo, Richard Hoskins, Brad Howes, Miguel de Icaza, Fran,Ag(Bois Felix Ingrand, 市川 達 哉, 石川 一郎, Lee Iverson, 岩室 元典, Rajappa Iyer, Andreas Jaeger, Adam P. Jenkins, Randell Jesup, Fred Johansen, Gareth Jones, Greg Klanderman, Karl Kleinpaste, Michael Klingbeil, Peter Skov Knudsen, 小林 修平, Petr Konecny, 小関 吉則, Thor Kristoffersen, Jens Lautenbacher, Martin Larose, Seokchan Lee, Joerg Lenneis, Carsten Leonhardt, James LewisMoss, Christian Limpach, Markus Linnala, Dave Love, Mike McEwan, Tonny Madsen, Shlomo Mahlab, Nat Makarevitch, Istvan Marko, David Martin, Jason R. Mastaler, Gordon Matzigkeit, Timo Metzemakers, Richard Mlynarik, Lantz Moore, 守岡 知彦, Erik Toubro Nielsen, Hrvoje Niksic, Andy Norman, Fred Oberhauser, C. R. Oldham, Alexandre Oliva, Ken Olstad, 大西 雅 晴, 小野 秀貴, Ettore Perazzoli, William Perry, Stephen Peters, Jens-Ulrik Holger Petersen, Ulrich Pfeifer, Matt Pharr, Andy Piper, John McClary Prevost, Bill Pringlemeir, Mike Pullen, Jim Radford, Colin Rafferty, Lasse Rasinen, Lars Balker Rasmussen, Joe Reiss, Renaud Rioboo, Roland B. Roberts, Bart Robinson, Christian von Roques, Markus Rost, Jason Rumney, Wolfgang Rupprecht, Jay Sachs, Dewey M. Sasser, Conrad Sauerwald, Loren Schall, Dan Schmidt, Ralph Schleicher, Philippe Schnoebelen, Andreas Schwab, Randal L. Schwartz, Justin Sheehy, Danny Siu, Matt Simmons, Paul D. Smith, Jeff Sparkes, Toby Speight, Michael Sperber, Darren Stalder, Richard Stallman, Greg Stark, Sam Steingold, Paul Stevenson, Jonas Steverud, Paul Stodghill, 須藤 清一, Kurt Swanson, Samuel Tardieu, Teddy, 戸沢 晶彦, Chuck Thompson, Philippe Troin, James Troup, Trung Tran-Duc, Jack Twilley, Aaron M. Ucko, Aki Vehtari, Didier Verna, Vladimir Volovich, Jan Vroonhof, Stefan Waldherr, Pete Ware, Barry A. Warsaw, Christoph Wedler, Joe Wells, Lee Willis, and Lloyd Zusman.
Gnus のアルファ配布に含まれている ChangeLog は、それぞれの人たちが行なっ たことの完全な大要を伝える豊かな読み物です。(550KB といくらか)。(訳 注: 非常に古い ChangeLog の記述が何度かばっさり捨てられましたが、それで も現在は非常に大きなサイズになっています。)
私が忘れてしまったすべての人に謝罪します。間違いなくたくさんの人を忘れて しまったことでしょう。
わぁ、こんなに人がいるとは思わなかった。これは本当に Gnus を使っている人 がいるということなんでしょう。そんなことを誰が想像したでしょうか!
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
11.2.8.1 (ding) Gnus 最初の新しい Gnus である Gnus 5.0/5.1 の新しいこと 11.2.8.2 September Gnus 公式に Gnus 5.2/5.3 として知られているもの 11.2.8.3 Red Gnus 三番目の最上のもの---Gnus 5.4/5.5 11.2.8.4 Quassia Gnus 2 かける 2 は 4、もしくは Gnus 5.6/5.7 11.2.8.5 Pterodactyl Gnus 神秘の数も P で始まるけれど。Gnus 5.8/5.9 の別名 11.2.8.6 Oort Gnus 巨大な。遠く遥かな。Gnus 5.10/5.11。 11.2.8.7 No Gnus 超やばい。Gnus 5.12/5.13 11.2.8.8 Ma Gnus 祝 Gnus 25 周年。
これらのリストは、もちろん たいていの 重要な新しい機能に関す る 短い 要約でしかありません。いいえ、実は違います。もっともっと たくさんのものがあるのです。そう、事実上私たちは十分に用の無いも の (feeping creaturism) を持っているのです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus 5.0/5.1 の新しい機能:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus 5.2/5.3 の新しい機能:
mail-mode
, rnews-reply-mode
と gnus-msg
のすべての古いカスタマイズ変 数は今や旧式になりました。
(setq gnus-build-sparse-threads 'some) |
trn
のような木バッファーを表示できるようになりました (see 節 3.25 木表示)。
(setq gnus-use-trees t) |
nn
のような、選んで読むマイナーモードを概略バッ ファーで使うことができるようになりました (see 節 3.24.1 選んで読む)。
(add-hook 'gnus-summary-mode-hook 'gnus-pick-mode) |
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode) |
(add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group) |
nndoc
はすべての種類のまとめ送り、メールボックス、rnews ニュース の一括配送、ClariNet の要約集、そしてその他のすべてを理解できるようにな りました (see 節 6.6.3 文書グループ)。
nnsoup
) を持っています。
Message-ID
による記事の取得をサポー トするようになりました。
gnus-buffer-configuration
の部分になることができるよう になりました (see 節 9.5 ウィンドウの配置)。
(setq gnus-permanently-visible-groups "^nnml:") |
Mail-Copies-To
ヘッダーを尊重するようになりました。
References
ヘッダーを調べることによって、スレッドを集めることがで きるようになりました (see 節 3.9.1 スレッドをカスタマイズする)。
(setq gnus-summary-thread-gathering-function 'gnus-gather-threads-by-references) |
(setq gnus-keep-backlog 50) |
(setq gnus-prompt-before-saving t) |
gnus-uu
は記事を取得している間に、非同期でデコードされたファイル を表示できるようになりました (see 節 3.17.5.2 他のデコードのための変数)。
(setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view) |
(setq gnus-cited-lines-visible 2) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus 5.4/5.5 の新しい機能:
and
, or
, not
のような論理演算子と、親 記事にさかのぼってリダイレクトすることで実行できるようになりまし た (see 節 7.15 上級スコア付け)。
(setq gnus-suppress-duplicates t) |
nndoc
がより簡単に拡張できるように改訂されまし た (see 節 6.6.3.1 文書サーバーの内部)。
nn
らしくなりました。 行番号が表示され、記事を選ぶために . 命令を使うことができるように なりました (Pick and Read
)。
w
を使うことによって、単語でスコア付けをすることが 可能になりました (see 節 7.4 スコアファイル様式)。
(setq gnus-use-adaptive-scoring '(word)) |
(setq gnus-decay-scores t) |
nndoc
グループのてっ ぺんで nnvirtual
を使います) が加えられました---C-M-d (see 節 3.27.4 本当にいろいろな概略命令)。
Sorting
)。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus 5.6 の新しい機能:
nndraft
バックエンドが戻ってきました。でも、依然とは違う動作をし ます。すべてのメッセージバッファーは、今では自動的に作成され る nndraft
グループの記事でもあります。
gnus-alter-header-function
を、ヘッダーの値を変えるために使うこと ができるようになりました。
gnus-summary-goto-article
が Message-ID を受け付けるようになりま した。
nnvirtual
グループを構成しているグルー プに投稿できるようになりました。
nntp-rlogin-program
---カスタマイズを簡単にするための新しい変数で す。
gnus-article-edit-mode
における C-u C-c C-c
命令は、記事バッ ファーの再ハイライトを抑制するようになりました。
gnus-boring-article-headers
に、long-to
という新しい要素が あります。
gnus-simplify-subject-functions
によって、表題の単純化を強力 に制御できるようになりました。
nnmail-split-methods
で有効になりました。
custom-face-lookup
が取り除かれました。あなたの初期化ファイ ルでこの関数を使っていたのなら、代わりに face-spec-set
を使うよう に書き直さなければなりません。
nntp
のデバッグを楽にするために、 nntp-record-commands
を nil
ではない値に設定することができ ます。
nntp
は `~/.authinfo' を使うようになりました。これ は `.netrc' のようなファイルで、どこの NNTP サーバーには どのように AUTHINFO を送るかを制御するためのものです。
article-date-iso8601
。
gnus-score-thread-simplify
を設定することによって、スレッドを作成 するときの表題を単純化できるようになりました。
message-cite-original-without-signature
。
article-strip-all-blank-lines
---新しい記事命令です。
gnus-adaptive-word-minimum
を使うことによって、最小限度の適 応スコアを指定することができます。
gnus-start-date-timer
命令によって「記事が投稿されたときからの経 過時間」ヘッダーが継続的に更新されるようになりました。
nnlistserv
バックエンドによって読むことができるようになりました。
nnweb
で読むことができるようになりまし た。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus 5.8 の新しい機能:
以下のような procmail の使い方は
(setq nnmail-use-procmail t) (setq nnmail-spool-file 'procmail) (setq nnmail-procmail-directory "~/mail/incoming/") (setq nnmail-procmail-suffix "\\.in") |
現在では次のように変わっています。
(setq mail-sources '((directory :path "~/mail/incoming/" :suffix ".in"))) |
See 節 6.4.4.1 メールソース指示子.
gnus-auto-select-first
が、ポイントを置く場所を決定するための関数 であってもよくなりました。
gnus-article-display-hook
が削除されました。代わり に gnus-treat-
で始まるたくさんの変数が追加されました。
nnslashdot
, nnwarchive
および nnultimate
です。nnweb は常に変化する構 成をとり続けるために、再び作り直されました。
nnimap
によって IMAP のメールを読むことができま す。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus 5.10 の新しい機能:
Oort (このリリースに先立つ安定ではない Gnus の枝) を使ってみたものの、安 定版に戻してしまったならば、この版にグレードアップするときに注意してくだ さい。特に、おそらくすべて の `.marks' (nnml) と `.mrk' (nnfolder) ファイルを消去する必要 があるでしょう。その目的は、この版 (の Gnus) がフラグを格納す る `.marks'/`.mrk' ファイルではなくて `.newsrc.eld' から フラグが読まれるようにするためです (訳注: 言い換えると、古い様式 の `.marks'/`.mrk' ファイルを新しい Gnus が読んではいけないと いうことです。それらは新たに作成されます)。後述の項目で、印 (marks) に関 するより多くの情報を読んでください。グレードを下げても一般には助けになら ないことに注意してください。
make remove-installed-shadows
を使って削除するこ ともできます。
MS ウィンドウズで Gnus をインストールするには `make.bat' を使ってく ださい。このバッチ・プログラムの第一引数はディレクトリーです。そこ で `xemacs.exe' と `emacs.exe' が順に捜し出されます。コンパイ ルしてから Gnus をインストールしたいときは、`make.bat' の第二引数 に /copy
を与えてください。
`make.bat' はゼロから書き直されました。XEmacs と Emacs を自動認識し、 `gnus-load.el' を生成し、コンパイル中と info ファイルの生成中にエラー が起きたら構築処理の最後に報告します。makeinfo
が利用可能であれば それを使い、さもなければ `infohack.el' に頼ります。今 や `make.bat' は Gnus を動作させるために必要なすべてのファイルをイ ンストールするはずで、大体において Unix システムにおけ る configure; make; make install
サイクルの完全な置き換えになりま した。
新しい `make.bat' によっ て `make-x.bat' と `xemacs.mak' が不要になったので、それらは削 除されました。
以下の変更の結果、もはや `~/News/overview/' ディレクトリーは要りま せん。すべての階層を安全に削除することができます。
(require 'gnus-load)
単独で配布されている Gnus を使う場合には、 load-path
に Gnus の lisp ディレクトリーを追加してから、 `~/.emacs' に (require 'gnus-load)
を加えるのが良いです。
`gnus-load.el' ファイルは、そのうちのいくつかは Emacsen の配布に入っ ていないかもしれない自動読み込み (autoload) コマンド、関数および変数を含 んでいます。
TLS/SSL が、`tls.el' と GnuTLS を介し て IMAP と NNTP でサポートされるようになりました。
Gnus は非常に変化に富んだプログラムと濾過の規則を使って、メールやニュー スの奔流から spam を抜き取ってしまうことができるようになりました。対応し ている方式は、RBL blocklists、bogofilter それにホワイト/ブラックリストで す。また SpamAssassin や Hashcash のような外部パッケージを容易に使うため の hook も新しくなりました。9.17 spam メールの裏をかく およ び 9.18 Spam パッケージ.
Sieve の規則はグループパラメーターとして加えることができ、グループバッファー で D g を使うと完全な Sieve スクリプトが生成されます。そうしたら、 生成された Sieve バッファーで C-c C-l を使って、サーバーにアップロー ドしてください。2.18.5 Sieve コマンド、それに新しい Sieve のマニュア ル (see 節 `Top' in
gnus-group-read-ephemeral-group
を G M キーで対話的に呼ぶこ とができます。
二つの新しいコマンドで、ニュースグループの憲章を取り込む (H c) こ とと、コントロールメッセージを取得する (H C) ことができます。
gnus-parameters
を、グループパラメーターを設定するため に使うことができます。
これは初期には、パラメーターを `~/.newsrc.eld' に格納する G p (または G c) でしか行なうことができませんでしたが、この変数によっ てカスタマイズの威力を堪能することができます。また、その変数 は `~/.newsrc.eld' ではなくて `~/.gnus.el' で設定するので、バッ クアップが簡単になります。その変数は、グループ名に合致する正規表現を、以 下のような流儀でグループパラメーターに割り当てます:
(setq gnus-parameters '(("mail\\..*" (gnus-show-threads nil) (gnus-use-scoring nil)) ("^nnimap:\\(foo.bar\\)$" (to-group . "\\1")))) |
グループバッファーで表示される nnimap グループの未読記事の数の見積りが正 確になったはずです。これは gnus-setup-news-hook
(起動時に呼ばれ る) と gnus-after-getting-new-news-hook
(新しいメールを取得した直 後に呼ばれる) から nnimap-fixup-unread-after-getting-new-news
を 呼ぶことによって成し遂げられます。これらの変数をディフォルトではない値に 変えている場合は、重ね て nnimap-fixup-unread-after-getting-new-news
を追加する必要があ るかもしれません。見積りに満足していて、新しいメールを取得するときにいく らかの (わずかな) 時間を節約したいのであれば、その関数を外してください。
これは USEFOR が移行しようとしていると想定されるものです。カスタマイズす るには gnus-group-name-charset-group-alist
およ び gnus-group-name-charset-method-alist
を参照してください。
gnus-group-charset-alist
と gnus-group-ignored-charsets-alist
これらの変数に設定された正規表現は、完全な (full) グループ名と比較されま す。Gnus 5.8 では実際の (real) グループ名が比較の対象でした。したがって、 これらの変数をカスタマイズしている利用者は、正規表現を変更しなければなり ません。例です:
("^han\\>" euc-kr) -> ("\\(^\\|:\\)han\\>" euc-kr) |
gnus-article-followup-with-original
) およ び R キー (gnus-article-reply-with-original
) は、その領域に あるテキストだけを yank します。
gnus-draft-edit-message
コマ ンドに割り当てられました。gnus-summary-edit-article
コマンドには、 代わりに B w キーを使ってください。
URL、メールアドレス、Message-ID、Info へのリンク、man ページと Emacs ま たは Gnus に関連した参考文献のための、より多くのボタンが追加されました。 See 節 3.18.6 記事のボタン. すべての記事のボタンの見栄えを制御するため に gnus-button-*-level
変数を使うことができます。 See 節 3.18.7 Article button levels.
Picon のコードが、GNU Emacs で動作させるために再実装されました。以前のい くつかのオプションが、削除または改名されています。
Picon は、利用者、ドメイン、それにニュースグループを表現するための「個人 的なアイコン (personal icons)」で、記事バッファーに表示することができま す。See 節 9.15.4 Picons.
gnus-treat-body-boundary
を非-nil
にする と、ヘッダーのおしまいに境界線が描かれます。
(setq gnus-summary-display-arrow nil)
を使ってください。
間違ってニュースにメールで返信しようとしてしまうことが、しょっちゅうあり ませんか? そんなあなたに新オプショ ン gnus-confirm-mail-reply-to-news
。
gnus-summary-display-while-building
を 非-nil
にすると、概略バッファーが作られていく様子が表示されます。
mm-uu-diff-groups-regexp
に合致するグループでは、差分 (diffs) が 自動的にハイライトされます。
いくつかのマイクロソフトのメイラーが、メッセージの残りの部分が引用である ことを示すために使う台無しにされたヘッダーブロックを、たとえそれが引用符 で囲まれていなくても、Gnus はとにかく認識しようとします。変 数 gnus-cite-unsightly-citation-regexp
は、それらの引用の先頭に合 致します。
新しい W Y f コマン ド (gnus-article-outlook-deuglify-article
) で、醜く壊れた Outlook (Express) の記事を整形し直すことができます。
gnus-article-skip-boring
gnus-article-skip-boring
を t
に設定すると、Gnus はうんざ りする文しか含んでいないページを見せるために、下方にスクロールしません。 gnus-article-boring-faces
を使って、何を読み飛ばしてしまっても良 いかをカスタマイズすることができます。
てっぺんに少しだけある新規な内容に、長くて刈り込まれていない引用が続いて いるたくさんの記事を読む場合に、これは特に役に立ちます。
これを働かないようにするには、(setq gnus-treat-display-smileys nil)
を `~/.gnus.el' に置いてください。
gnus-summary-line-format
ディフォルト値が `%U%R%z%I%(%[%4L: %-23,23f%]%) %s\n' に変わりまし た。さらに、受信者の名前か NNTP グループに投稿したグループ名で 利用者名を置き換えるために、gnus-extra-headers
、 nnmail-extra-headers
および gnus-ignored-from-addresses
の ディフォルト値が変わりました。
gnus-mime-save-part-and-strip
コマンド (MIME ボタン上 で C-o に割り当てられている) は、パートをセーブしてから外部のそれ と置き換えます。gnus-mime-delete-part
(MIME ボタン上 で d に割り当てられている) は、パートを削除します。これは編集をサ ポートしているバックエンドでだけ動作します。
gnus-default-charset
ディフォルト値は iso-8859-1
に代わっ て current-language-environment
変数によって決定される値になりま す。また、gnus-group-charset-alist
にあった `.*' の項目は削 除されました。
Gnus はそれ自身が、概略と記事バッファーにおけ る O P で Muttprint をサポートします。さらに MIME ボタン 上で p を使うことによって、個々の MIME パートのそれぞれ を印刷することができます。
書法仕様 `%&user-date;' が gnus-summary-line-format-alist
に 追加されました。それに、利用者定義による拡張されたフォーマットの仕様もサ ポートされています。拡張された書法仕様は `%u&foo;' のようなもので、 関数 gnus-user-format-function-foo
を起動します。 `&' がエスケープ文字に使われているので、古い利用者定義書法であ る `%u&' は今ではサポートされていません。
gnus-summary-limit-include-cached
) が書き直されました。
これは Y c (gnus-summary-insert-cached-articles
) の別名でし た (訳注: 以前は)。新しい関数は他の記事を濾過して除去します。
C-u を subject、author または extra ヘッダー、すなわち / s、 / a およ び / x (gnus-summary-limit-to-{subject,author,extra}
) で 使うと、結果としてその表現に合致しないすべての記事が表示されます。
Message バッファーにおける C-c C-j で、メッセージの送信を遅らせる ことができます。メッセージは指定された時刻に配送されます。これはあなた自 信のための忘備録として役に立つでしょう。See 節 3.6 遅延記事.
auto-compression-mode
が有効になっていると、添付ファイルを見ると きに自動で圧縮が解かれます。
gnus-gcc-mark-as-read
は、Gcc の記事に自動的に既 読の印を付けます。
gnus-gcc-externalize-attachments
また は message-fcc-externalize-attachments
が非-nil
になってい ると、ローカルファイルを外部パートとして添付します。
それは初期においては、利用者が設定した email アドレスが Gnus が想定した 利用者のディフォルトのアドレスと違っていた場合に生成されました。今日では その想定アルゴリズムが正しいことはまれで、Sender: ヘッダーの唯一の (議論 の的になる) 用途は、ニュースを cancel/supersede する資格があるかどうかを 検査すること (これは代わりに、他の章で述べられる Cancel Locks によって解 決されました) なので、そのヘッダーの生成はディフォルトで抑制されています。 変数 message-required-headers
、 message-required-news-headers
およ び message-required-mail-headers
を参照してください。
Message は表題の行から `(was: message-subject-trailing-was-query
参照)。 C-c M-m と C-c M-f は挿入されたテキストを示す印を挿入します。 C-c C-f a は X-No-Archive: ヘッダーを付け加えます。C-c C-f x は、適切なヘッダーと、クロスポストとフォロー先についての注意書きを本 文に挿入します (message-cross-post-*
変数群を見てください)。
message-generate-headers-first
が nil
だったら、メッ セージの作成を始めるときに References と X-Draft-From ヘッダーは生成され ません。
空白や他の変な文字を含むグループを扱えるようにするために、グループ は Gcc: header に置かれる前に引用符で囲まれます。これは、空白を含むグルー プが使えるようにするために、もはや gnus-message-archive-group
の ような変数に引用文字を含めるべきではないことを意味します。さらに、文字 列 `nnml:foo, nnml:bar' (二つのグループに Gcc を格納することを示 す) を使っているならば、("nnml:foo" "nnml:bar")
というリストを返 すように変更しなければなりません。さもないと、Gcc: 行は間違った囲まれ方 をされてしまうでしょう。初期のころに文字列 `nnml:foo, nnml:bar' を 返すようにしたことが間違いだったことに着目してください。それは直接挿入さ れたので、まったく問題を生じませんでした。
message-insinuate-rmail
(message-insinuate-rmail)
と (setq mail-user-agent 'gnus-user-agent)
を `~/.emacs' に加えることによって、 message-mode
でメッセージの作成、返信および転送を行なうよう に Rmail を説得することができます。そこでは MML の威力を堪能す ることができます。
message-minibuffer-local-map
この下の行は、メッセージを再送するときに BBDB を使えるようにします:
(define-key message-minibuffer-local-map [(tab)] 'bbdb-complete-name) |
gnus-posting-styles
このような合致の様式が加わりました。
((header "to" "larsi.*org") (Organization "Somewhere, Inc.")) |
下記のような古い様式は時代遅れになりましたが、まだ受け入れられます。
(header "to" "larsi.*org" (Organization "Somewhere, Inc.")) |
message-ignored-news-headers
と message-ignored-mail-headers
`X-Draft-From' と `X-Gnus-Agent-Meta-Information' が、これら二 つの変数に加えられています。それらをカスタマイズする場合に、もしかすると それら二つのヘッダーも加える必要があります。
use-hard-newlines
で活性化されます。 format=flowed のデコードは以前からできましたが、初期の版では説明の文書が ありませんでした。
mm-fill-flowed
オプションで“format=flowed”メッセージを流動テキス トとして処理することをやめさせることができます。また、PGP 署名が埋め込ま れたメッセージを送信するとき、流動テキストの処理は行なわれません。 See 節 `流動テキスト' in
これはメッセージモードの C-c M-n キーで呼び出されます。
メッセージバッファーで C-c C-f C-i か C-c C-u を使うと、可能 な値が循環します。
投稿するニュース記事に `Cancel-Lock' ヘッダーが挿入されることです。 これは、記事をあなたが書いたのかどうかを確かめるために使います (キャンセ ルと置き換えのとき)。最初に記事を投稿するときに、Gnus はランダムなパスワー ド文字列を生成し、カスタムの機構を使って `~/.emacs' にセーブします。 その変数は canlock-password
と呼ばれますが、機密を気にするデータ ではありません。ウェブ上で canlock を公開しても、以前から彼女にできなかっ た何かを、誰かができるようにするものではありません。 message-insert-canlock
をカスタマイズすることによって、振る舞いを 変更するができます。
これには S/MIME と OpenPGP が実装されている必要があります。で も追加の Lisp ライブラリーは要りません。メッセージの作成時に、いくつかの メニューと C-c RET キーの割り当てが Attachments メニューに追加され ます。これはまた、gnus-article-hide-pgp-hook
を時代遅れにしました。
この変更によって、標準キー割り当ての back-to-indentation
との衝突 が回避されました。このコマンドもまた、メッセージモードでは役に立つのです。
message-forward-show-mml
のディフォルトが best
というシン ボルに変わりました。
値 best
の振る舞いは、それがふさわしい場合は MML を表示 する (すなわち MIME に変換する) ことです。変換がディジタル署名 を無効にしてしまうので、署名された、または暗号化されたメッセージを転送す るときは MML は使われません。
auto-compression-mode
が有効になっていると、添付ファイルを見ると きに自動で圧縮が解かれます。
Message は From:, To: および Cc: にある非-ASCII ドメイン名をサ ポートし、メッセージの送信をしようとしたときにエンコードするかどうかを尋 ねます。message-use-idna
変数でこれを制御します。Gnus もまた、メッ セージを見るときに From:, To: および Cc: にある非-ASCII ドメイ ン名をデコードします。これを制御するのは gnus-use-idna
変数です。
mml-dnd-protocol-alist
と mml-dnd-attach-options
を参照し てください。See 節 `MIME' in
auto-fill-mode
が Message モードでディフォルトで有効になります。 message-fill-column
を参照してください。See 節 `いろいろなメッセージ変数' in
Gnus は新バックエンドである `nnmaildir.el' を含んでいます。 See 節 6.4.13.5 Maildir.
これは nnml/nnfolder サーバー/グループ を `~/.newsrc.eld' と切り離 して、しかし印は守りつつ、バックアップすることを可能にします。さらに、例 えば研究室や職場などの組織内で、(`~/.newsrc.eld' ファイルを共有する こと無しに) 利用者間で記事と印を共有することをも可能にします。これは、 `~/.newsrc.eld' に格納される印を、グループ毎の `.marks' ファイ ル (nnml 用) と `groupname.mrk' ファイル (groupname の 名前を持つ nnfolder 用) に格納することによって動作します。 nnml/nnfolder を他のマシンに引っ越しても、 Gnus は `~/.newsrc.eld' にある情報の代わりに、自動的 に `.marks' か `.mrk' ファイルを使います。新しいサーバー変数で ある nnml-marks-is-evil
と nnfolder-marks-is-evil
が、この 機能を抑制するために使うことができます。
gnus-group-update-tool-bar
を参照してください。その ディフォルト値は Emacs のバージョンに依存しています。これは Gnus 5.10.9 の新機能です。gnus-agent
Gnus エージェントは大規模な更新を経て、今やディフォルトで有効になります。 そし て gnus-select-method
と gnus-secondary-select-method
で指 定されるすべての nntp と nnimap のサーバーが、ディフォルトでエージェント 化されます。初期においては gnus-select-method
のサーバーだけがディ フォルトでエージェント化され、エージェントはディフォルトでは有効にされま せんでした。エージェントが有効にされると、今では可能ならばバックエンドに 代わってエージェントのキャッシュからヘッダーが取り寄せられます。初期には、 これはオフライン (unplugged) の状態でのみ行なわれていました。サーバーバッ ファーで J a と J r を使うことによって、サーバーの登録と削除 を行なうことができます。グループバッファーから J u か J s を 使って命令しない限り、Gnus は記事をエージェントのキャッシュにダウンロー ドしません。(setq gnus-agent nil)
を設定することによって、エージェ ントが有効にされていなかった昔の振る舞いに戻すことができます。もは や `~/.gnus.el' に (gnus-agentize)
を置いておく必要が無いこ とに注意してください。
Plugged のときに記事を読む場合に、その記事がすでにエージェントにあるなら ば、もう一度ダウンロードすることはありません。(setq gnus-agent-cache nil)
は旧式の動作に戻します。
gnus-dired-minor-mode
(9.20 他のモードとの相互作用 参照) は dired のバッファー で、添付ファイルを送信する、mailcap の適切な項目を使ってファイルを開く、 それに mailcap の項目を使ってファイルを印刷するためのキーを割り当てます。
%C
は、 %*
に変更されました。
gnus-slave-unplugged
オフラインの Gnus をスレーブモードで起動する新しいコマンドです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
No Gnus の新しい機能:
No Gnus は以下の Emacs のバージョンをサポートします:
No Gnus (このリリースにつながる不安定な Gnus の枝) を試してみたものの、 安定版に戻してしまっている場合、このバージョンへアップグレードするときに は注意してください。特に、`~/News/marks' ディレクトリーの内容を (も しかしたら注意深く選んで) 削除する必要があるでしょう。(訳注: 削除しない と、新しい No Gnus を再び使い始めたときに安定版を使っていた時期に更新さ れなかった marks ファイルが読み込まれて、`~/.newsrc.eld' ファイルの 既読記事番号などを古いもので上書きしてしまいます。) 削除することによっ て、このリリースで nntp のフラグを保存している marks ファイルからではな く `~/.newsrc.eld' からフラグを読むようになります (訳注: そして新し い marks ファイルが作られます)。nntp marks については、次の項目でさらに 詳しい情報を得ることができます。一般にダウングレードすることは安全ではあ りません。
Emacs 23 では、Gnus は記事のドラフトと `~/.newsrc.eld' を保存するた めに Emacs の新しい内部 coding system である utf-8-emacs
を使いま す。これらのファイルは Emacs 22 以下では正しく読み込まれないかもしれませ ん。Gnus を異なるバージョンの Emacs にまたがって使いたい場合は、 mm-auto-save-coding-system
を emacs-mule
に設定すれば良い でしょう。
以前は `.../site-lisp/' がディフォルトでした。加えて、新しい インストーラーは他にインストールされている、新しい Gnus より 優先される Gnus を検出して警告を発します。それらを手動で取り 除いても良いし、make remove-installed-shadows
を使って 削除することもできます。
nnimap
の新バージョン
nnimap
はほとんどの互換性を保って再実装されました。新しいインター フェースについての説明は Gnus マニュアルを見てください。特 に nnimap-inbox
とクライアント側での分割方法が変化しています。
これによって、Emacs の中から SASL の機構を利用するために、すっ きりした API を使うことができます。利用者の目に見える利点は、 以前は無かった DIGEST-MD5 と NTLM がサポー トされるようになったことです。See 節 `Emacs SASL' in
これによる主な変更点は、サーバーがサポートしている場合 に DIGEST-MD5 と NTLM をサポートするようになったこと です。
パスワードキャッシュはディフォルトで有効です (password-cache
を 参照)。タイムアウトは 16秒と短いです (password-cache-expiry
を参 照)。PGG を PGP のバックエンドとして使う場合に、 PGP のパスフレーズはこの機構で管理されます。ManageSieve 接続の パスワードは、利用者にそうするかどうかを尋ねてから、この機構が管理します。
EasyPG を使うことができる場合、Gnus は PGG の代わりにそれを使 います。EasyPG は GNU Privacy Guard へのユーザーインターフェースです。 See 節 `EasyPG Assistant user's manual' in
gcc-self
のようなシンボルは gnus-parameters
と同じ、つまり 他の実在の変数がそうであるような優先度決定規則を持つようになりました。あ る条件に最初に合致するものではなく、最後に合致するものが採用されます。
mm-text-html-renderer
.
gnus-summary-idna-message
) を使うことによって、記事の本文中でデ コードできるようになりました。この機能を使うには GNU Libidn (http://www.gnu.org/software/libidn/) をインストールしておく必要が あります。
nntp
, nnml
, およ び nnrss
です。エージェント、キャッシュ、それに印 (marks) もそれ らのバックエンドで機能します。See 節 2.17 英字以外の名前のグループへのアクセス.
gnus-summary-limit-to-replied
) と / R (gnus-summary-limit-to-recipient
) をサポートします。 See 節 3.8 制限をする.
gnus-summary-insert-ticked-articles
) を使って、 サーバーからすべての可視記事を取り寄せることができるようになりました。 See 節 3.27.3 概略生成命令.
gnus-summary-sort-by-recipient
) をサポートします。 See 節 3.22 概略の並べ替え.
smime-ldap-host-list
でサーバーを設定する必要があ ります。
gnus-picon-style
を見てください。See 節 9.15.4 Picons.
中国語のニュース階層のグループにおいて、記事をハイライト表示するため に ANSI シーケンスが使われま す (gnus-article-treat-ansi-sequences
)。
gnus-article-loose-mime
のディフォルト値が変 更されました。
gnus-decay-scores
をスコアファイルに合致する正規表現にでき ます。例えば `\\.ADAPT\\'' に設定すると、適応スコアファイルだけが減 衰されるようになります。See 節 7.16 スコアを減衰させる.
gnus-ignored-from-addresses
を使う場合に、概略行におい て To
と Newsgroup
ヘッダーに相当する場所の最初に表示する 文字列を、gnus-summary-to-prefix
およ び gnus-summary-newsgroup-prefix
でカスタマイズすることができます。 See 節 3.1.2 To From Newsgroups.
gnus-mime-replace-part
と gnus-article-replace-part
を見て ください。See 節 3.19 MIME コマンド, 4.2 MIME を使う.
mm-fill-flowed
オプションで format=flowed なメッセージの取り扱い を無効にすることができます。また、PGP の署名が埋め込まれたメッ セージを送信するときに、flowed text は無効にされます。See 節 `流動テキスト' in
gnus-article-wide-reply-with-original
) は 記事バッファーで広い返答をするためのもので、もし領域が設定され たテキストがあれば R コマン ド (gnus-article-reply-with-original
) と同様にそれを引用します。 以前は R コマンドに広い返答をさせるために使われた接頭引数が、今で は受け付けられないことに注意してください。See 節 4.5 記事のキーマップ.
gnus-article-describe-bindings
) は、記事コマンドだけでなく記事バッ ファーから利用することができる真の簡略コマンドも表示します。(setq message-generate-hashcash t)
で有効になります。 See 節 9.17.4 Hashcash.
mml-dnd-protocol-alist
と mml-dnd-attach-options
を見てく ださい。See 節 `MIME' in
message-yank-empty-prefix
オプションで、引用文の空行にどん な引用符を付けるかを制御することができます。See 節 `挿入するための変数' in
References
はディフォル トで表示されません。すべてのヘッダーが見えるようにするに は (setq message-hidden-headers nil)
としてください。 See 節 `メッセージヘッダー' in
gnus-message-highlight-citation
.
gnus-message-highlight-citation
を参照してください。
auto-fill-mode
がディフォルトで ON にな ります。message-fill-column
を参照してください。See 節 `メッセージヘッダー' in
message-signature-directory
変数で指定するディ レクトリーに置くことができます。
message-citation-line-format
で指定することができます。これを 使うには message-citation-line-function
変数 を message-insert-formatted-citation-line
に設定する必要がありま す。変数 gnus-browse-subscribe-newsgroup-method
を使ってください。
そのディレクトリーは nntp-marks-directory
という (カスタマイズ可 能な) 変数で変更することができます。また、nntp で印を使うこと を nntp-marks-is-evil
という変数 (バックエンド変数) で無効にする ことができます。印を使うことの利点は、`~/News/marks' を別のホストに インストールされた Gnus にも (rsync, scp などを使って) コピーすることに よって、どの記事を読んでどの記事に印を付けたかの情報を、そこでも維持でき ることです (訳注: 同じ nntp サーバーに接続する場合に限ります)。 `~/News/marks' のデータは `~/.newsrc.eld' にある同じデータより 優先されます。
ディフォルトでは Gnus はそれ自身に関する情報を送信しませんが、 nnimap-id
変数を使ってそれをカスタマイズすることができます。
nnrss
バックエンドは多言語テキストをサポートします。 nnrss
グループでは非-ASCII 文字列を使ったグループ名もサポートされ ます。See 節 6.5.3 RSS.
関数 gnus-group-compact-group
(グループバッファー の G z キー) および gnus-server-compact-server
(サーバーバッ ファーの z キー) で呼び出すこの機能は、グループのすべての記事の番 号を 1 から順に振り直して、すきまを取り除きます。その結果として、正しい 全記事数を得ることができます (再びメッセージが削除されるまでは)。
gnus-group-update-tool-bar
を 参照してください。そのディフォルト値は Emacs の版に依存します。
gnus-use-toolbar
と message-use-toolbar
を見 てください。nntp-via-address
を `foo.example.com' か ら `bar.example.com' に変更すると、Gnus は次回から中間ホス ト `bar.example.com' を経由してニュースサーバーに接続するようになり ます。
gnus-mark-copied-or-moved-articles-as-expirable
を nil
で はない値に設定することによって、読み終わった記事を auto-expire が有効に なっているグループにコピーするか移動するとき、それらに期限切れ消去可能の 印を自動的に付けるようにすることができます。ディフォルト値 は nil
で、記事のコピーと移動の動作は従来通りです。つまり、記事 を auto-expire が有効になっていないグループにコピーするか移動するときに 期限切れ消去可能の印が削除される以外は、印は変化しません。See 節 6.4.9 メールの期限切れ消去.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ここにはたくさんの文章がかかれるでしょう。本当の綴りは「真 Gnus」です。
真 Gnus の新しい機能:
gnus-gcc-pre-body-encode-hook
およ び gnus-gcc-post-body-encode-hook
が、送信したメッセージ を Gcc
コピーする際、そのボディーをエンコードする前後に実行されま す。See 節 5.5 メッセージの保管.[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
おそらく、たいていのマニュアルは事後に書かれていると思います。つまり、す でにあるプログラムを文書化しているということです。このマニュアルはそうい う方法で書かれていません。何かを実装するときは、何かをそのままマニュアル の一節に書きます。それから機能の説明が難しいことを発見して、それがどのよ うにあるべきであるかを書き、次には実装を変更します。文書とコードを書くこ とは協調して行なわれていきます。
もちろん、これはこのマニュアルには流れ構造がほとんど無いか、あっても少し だということを意味します。Gnus の完全にすべてのことが説明されていますが、 あなたが探している場所ではないということがよくあります。これはリファレン スマニュアルであって、Gnus を始めるための手引きではありません。
それはこのリファレンスマニュアルを元にして書かれた、まったく違った本にな るでしょう。とても違ったものになるはずです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
そういうわけで、バックエンドは主にプロトコルか、ファイルの形式とディレク トリーの配置のどちらかを定義します。前者は nntp
バックエンド が NNTP でニュースにアクセスしたり、nnimap
バックエンド が IMAP でメールにアクセスすることを指します。また、後者 は nnspool
バックエンドが共通の「スプールディレクトリー」形式にア クセスしたり、それととてもよく似たファイルの形式とディレクトリーの配置を 介して nnml
バックエンドがメールにアクセスすることを指します。
Gnus は基礎的なメディアを扱いません。言わばこれは、すべてバックエンドに よって行なわれるということです。バックエンドは記事にアクセスするための機 能の集成です。
しかし、「バックエンド」という用語は「サーバー」と言った方がふさわしい場 面でときどき使われます。そして同じことを指すことができる「選択方法」 (select method) という用語があります。かように Gnus の用語はとても混乱し ています。
nntp
バックエンドで は Gnus は NNTP サーバーが作るものを使いますが、いくつかのサー バー (特に nnml
) のためには Gnus 自身が作ります。
グループに入ると、Gnus はグループのすべての未読記事のヘッダーをバックエ ンドに要求します。ほとんどのサーバーは News OverView 様式をサポートして います。それは標準の HEAD 様式よりコンパクトで、とても速く、読んで 解析することができます。
NOV データは一つ以上のテキスト行 (see 節 `Motion by Text Lines' in
それらのデータは Gnus が概略行をすばやく生成することを可能にします。しか しサーバーが NOV をサポートしていなかったり、故意にまたはある 理由でそれを使わないようにしてしまうと、Gnus はそれぞれの記事のヘッダー を一つずつ解析することによってヘッダー情報を生成しようとするでしょう。そ れには時間がかかります。したがって、サーバーが間違った NOV デー タを作ることがわかっている場合以外は、nn*-nov-is-evil (see 節 11.5.1 遅くて高価な接続) を nil
ではない値にすることは、 通常は良い考えではありません。
gnus-build-sparse-threads
が有効にされているときに、それらは概略 バッファーに表示される (存在しない) 記事のための場所取りです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
すべての変数は、このマニュアルのどこか他のところで適切に説明されています。 この章は、非常に良くある状況でどのように Gnus をカスタマイズすれば良いか を調べるための、総合的な案内になるように作られています。
11.5.1 遅くて高価な接続 ローカルの Emacs で、どこかからニュースを得る 11.5.2 遅いターミナル接続 遠くにあるホストの Emacs を実行する 11.5.3 少ないディスク容量 11.5.4 遅いマシン
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacs をローカルのマシンで実行していて、非常に細いひもの向こうのマシンか らニュースを取り寄せているとしたら、Gnus がサーバーから取って来なければ ならないデータの総量を減らしたくなるでしょうね。
gnus-read-active-file
nil
にしてください。これは Gnus がサーバーにアクティブファ イル全体を要求することを禁止します。このファイルはしばしば非常に大きいで す。さらに、Gnus が不意にアクティブファイルをとにかく取り寄せようと決意 しないように、gnus-check-new-newsgroups
およ び gnus-check-bogus-newsgroups
も nil
に設定する必要があり ます。
gnus-nov-is-evil
nil
にしておかなければなりません (それがディ フォルトです)。例えばもし nntp
バックエンド で NOV (see 節 11.4 用語) を使わないようにした い (see 節 3.29 クロスポストの扱い) のであれば、これを設定する代わり に nntp-nov-is-evil
を nil
以外の値にしてください。しか し Gnus は NNTP サーバーが NOV をサポートするかどう かを自分で調べるので、通常 nntp-nov-is-evil
を設定する必要はあり ません。とにかく Gnus が NOV を利用しないようにすると、 NNTP サーバーから記事のヘッダーを掴み取ってくる動作が、あまり 速くなりません。
他のバックエンドのための変数として nndiary-nov-is-evil
, nndir-nov-is-evil
, nnfolder-nov-is-evil
, nnimap-nov-is-evil
, nnml-nov-is-evil
およ び nnspool-nov-is-evil
があります。 gnus-nov-is-evil
に nil
以外の値を与えると、それらすべての 変数を上書きしてしまうことに注意してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacs と Gnus を実行しているシステムに、家のコンピューターをダイアルアッ プで接続しているとしましょう。モデムが遅い場合は、電線を伝って送られてい るデータの総量を (可能な限り) 減らしたくなるでしょう。
gnus-auto-center-summary
nil
に設定してください。これ が vertical
だったら、垂直方向のリセンターだけをします。 nil
でも vertical
でも無ければ、水平方向と垂直方向の両方で リセンターを行ないます。
gnus-visible-headers
利用できるすべての「隠す」機能を有効にするために、以下を使ってください:
(setq gnus-treat-hide-headers 'head gnus-treat-hide-signature t gnus-treat-hide-citation t) |
gnus-use-full-window
nil
に設定することによって、すべてのウィンドウを小さくする ことができます。これは総じてそんなに減らしませんが、この記事は何が何でも 読みたくなかったんだと決心する前に、それを少ししか見ないで済みます。
gnus-thread-hide-subtree
nil
ではない値にしておくと、すべての概略バッファーのスレッ ド (の親以外) は、初めは隠されているようになります。
gnus-updated-mode-lines
nil
にすると、Gnus はバッファーのモード行に情報を表示しな いので、いくらか時間を節約できるでしょう。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
起動ファイルはやや大きくなり得るので、空き容量が少なくなってきているとき は、そのサイズを少し小さくする必要があるでしょう。
gnus-save-newsrc-file
nil
にすると、Gnus は決して `.newsrc' を保存しませ ん---`.newsrc.eld' だけを保存します。これは Gnus 以外のニュースリー ダーが使えなくなることを意味します。この変数はディフォルトで t
で す。
gnus-read-newsrc-file
nil
であれば、Gnus は `.newsrc' を決して読みませ ん---`.newsrc.eld' だけを読みます。これは Gnus 以外のニュースリーダー が使えなくなることを意味します。この変数はディフォルトでは t
です。
gnus-save-killed-list
nil
であると、Gnus は死んだグループのリストを保存しません。 この変数を nil
に設定したときは、 gnus-check-new-newsgroups
を ask-server
に、 gnus-check-bogus-newsgroups
を nil
に設定するべきでしょう。 この変数はディフォルトで t
です。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
遅いマシンを持っているか、または本当は単に忍耐力が無いだけでも、Gnus を 速く走らせるためにできることが少しあります。
起動を速くするために gnus-check-new-newsgroups
およ び gnus-check-bogus-newsgroups
を nil
に設定してください。 概略バッファーに入ることと抜けることを速くするため に、gnus-show-threads
と gnus-use-cross-reference
、それ に gnus-nov-is-evil
を nil
に設定してください。 11.5.1 遅くて高価な接続 も参照してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は箱から出してすぐに 非常に よく動作します---どんな問題が起 きることも想像できません、本当に。
オッホン。
max-lisp-eval-depth
を 500 かそこいらの値に設定してください。もし他のすべてが失敗したなら、バグとして問題を報告してください。
もし Gnus のバグを見つけたなら、M-x gnus-bug 命令で報告することが できます。M-x set-variable RET debug-on-error RET t RET とタイプし て、私にバックトレースを送ってください。私はバグを修正しようとしますが、 あなたがバグを再現させる方法を正確に書いてくれないと、それを修正すること ができません。
バグ報告では、詳細すぎることは決してありません。バグ報告をするときは、い つも M-x gnus-bug 命令を使ってください。それを使うたびに 10KB のメー ルができてしまっても、そしてあなたの環境のことを以前私に 500 回送ったこ とがあったとしてもです。
私がどんなたぐいの記憶も持っていないことを、覚えておくことも重要です。も しあなたがバグ報告を送ると、私は返答を送ります。その後で、あなたが「いや、 そうじゃない! このうすのろめっ!」とだけ送り返してきても、私はあなたが何 について私を侮辱しているかがわかりません。常に、すべてを説明し過ぎてくだ さい。それは私たちすべてにとって、もっとやり易くなります---もし私が必要 なすべての情報を得られなかったら、私はあなたにメールを送ってさらなる情報 を求め、その結果すべてがより多くの時間を費やすことになります。
もしあなたの直面している問題が非常に視覚的で、それをうまく説明できない場 合は、Emacs のウィンドウをファイルにコピーして (例えば、xwd で)、 それをどこか手の届くどこかにおいて、その画像の URL をバグ報告に含めてく ださい。
もしあなたがバグの修正や改善のためのパッチを寄稿してくださるのでしたら、 すみませんがそのパッチは `diff -u' で作ってください。
問題を報告する前にもっとデバッグしたければ、あなた自身で問題を解決してパッ チを送るために edebug を使うことができるでしょう。Lisp コードのデバッグ については ELisp マニュアル (see 節 `Debugging Lisp Programs' in
ときどき、直接に elisp のエラーを起こさないものの、Gnus が非常に遅くなる ために明らかになる問題があります。そんな場合には M-x toggle-debug-on-quit を使って、遅くなったときに C-g を押し、しか る後にバックトレースを解析してください (その手続きを繰り返すことは、真の 問題領域を分離するのに役立ちます)。
より上等なやり方は elisp プロファイラー (訳注: プログラムの実行時の動き を分析する道具) ELP を使うことです。プロファイラーについてはどこか他 の場所で完全に文書化されているはずですが、それを始めるために必要な手順を 少々書いておきましょう。第一に、プロファイルしてみたい Gnus の部分を計測 するための設定を、例えば M-x elp-instrument-package RET gnus や M-x elp-instrument-package RET message で行なってください。 そして、遅い動作を行なわせてから M-x elp-results を押しましょう。 すると、どの動作が時間を食っているかを見て、それらをさらにまたデバッグす ることができます。動作全体が、プロファイラーの出力の中で最も遅い関数で費 やされた時間よりはるかに長くかかるのは、たぶん Gnus の間違っている部分を プロファイルしたせいでしょう。プロファイルの統計をリセットするに は M-x elp-reset-all を使ってください。 M-x elp-restore-all はプロファイルする動作を取り除くことになってい ますが、Gnus によって複雑にされかつ動的なコード生成の影響を受けるため、 それは必ずしも完全には動作しないかもしれません。
もし手助けが欲しいだけであれば、`gnu.emacs.gnus' で尋ねるのが良いで しょう。私はあまり役に立ちません。また、ding メーリングリス ト--- で尋ねることもできます。購読するに は にメールを送ってください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
誰かが Gnus でできる何か粋なものに知恵を働かせて、その粋なものを書いても くれることが私の願いです。それを促進するためには、Gnus の内部動作を説明 するのが良いだろうと思いました。それに、さほど内部ではない動作をいくつか と、私が今やっていることも。
プログラムの内部の仕様が変更されることはない、などと思ってはいけませんが、 Gnus とそのバックエンドの間のインターフェース (これは完全に記述されてい ます) や、スコアファイルの形式 (同じく)、データ構造 (これは他のものほど には変更されないでしょう)、それに一般的な操作のメソッドを、(細部にわたっ て) 定義していきます。
11.7.1 Gnus の有用な関数 共通の関数と変数 11.7.2 バックエンドインターフェース Gnus はどうやってサーバーと通信するのか 11.7.3 スコアファイルの構文 スコアファイル標準の BNF 定義 11.7.4 ヘッダー Gnus はヘッダーを内部的にどのように格納するか 11.7.5 範囲 11.7.6 グループ情報 11.7.7 対話形式の拡張 11.7.8 Emacs/XEmacs コード Gnus はすべての最新の Emacsen で動作する 11.7.9 いろいろなファイル様式 Gnus が使用するファイルの形式
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
フックなどから実行される小さな関数を書くときは、Gnus の内部関数や変数に アクセスすることが絶対に必要です。以下が最もよく使われるものの一覧です。
gnus-newsgroup-name
gnus-find-method-for-group
gnus-group-real-name
gnus-group-prefixed-name
gnus-get-info
gnus-group-unread
t
を返します。
gnus-active
gnus-set-active
gnus-add-current-to-buffer-list
gnus-continuum-version
gnus-group-read-only-p
gnus-news-group-p
gnus-ephemeral-group-p
gnus-server-to-method
gnus-server-equal
gnus-group-native-p
gnus-group-secondary-p
gnus-group-foreign-p
gnus-group-find-parameter
gnus-group-set-parameter
gnus-narrow-to-body
gnus-check-backend-function
nil
ではない値 を返します。
(gnus-check-backend-function "request-scan" "nnml:misc") => t |
gnus-read-method
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は NNTP やスプール、メール、仮想グループについては何も知 りません。ただ仮想サーバー virtual servers と対話する方法を知って いるだけです。仮想サーバーはバックエンド back end といくつかのバッ クエンド変数 back end variables からなります。前者の例として は nntp
, nnspool
, nnmbox
などがあります。後者の例と しては nntp-port-number
や nnmbox-directory
があります。
Gnus がバックエンド---例えば nntp
---に何かの情報を要求するとき、 通常は関数の引数として仮想サーバー名を含めます。(無い場合は、バックエン ドは「現在の」仮想サーバーを使うべきです。) 例え ば nntp-request-list
は、その唯一の (省略可能な) 引数として仮想サー バーを使います。もしこの仮想サーバーとの接続が開かれていないと、この関数 の実行は失敗するはずです。
仮想サーバー名は、物理的なサーバー名とは何の関係も無いことに注意してくだ さい。例を挙げましょう:
(nntp "odd-one" (nntp-address "ifi.uio.no") (nntp-port-number 4324)) |
ここで物理サーバー名は `ifi.uio.no' であるのに対して、仮想サーバー 名は `odd-one' です。
バックエンドは複数の仮想サーバーを切り替えることができなければなりません。 標準のバックエンドは、必要なときに仮想サーバーの環境を取り出し・押し込み を行なう連想リストを保持することによって、これを実現しています。
インターフェース関数には二つのグループがあります。必ず存在しなければなら ない必須関数 required functions と、呼び出す前にそれが存在するかど うかを常に Gnus が確認する任意関数 optional functions です。
これらすべての関数は、その戻り値のデータを nntp-server-buffer
(` *nntpd*') バッファーに返すことが求められます。これはちょっと 不運な名前付けですが、これで我慢しなければなりません。私が結果のデー タ resulting data と言ったときは、そのバッファーの中のデータを指し ています。戻り値 return value と言ったときは、関数呼び出しによって 返される関数の値のことを言っています。関数が失敗したときは、戻り値とし て nil
を返さなくてはいけません。
バックエンドにはサーバー型 server-forming のバックエンドと呼ばれる ものがあり、またそう呼ばれないものもあります。後者は一般には、同時には一 つのグループだけしか操作しないバックエンドで、「サーバー」の概念がありま せん。このサーバーとは、グループを持ち、そのグループの情報を配送するもの で、それ以上のものではありません。
Gnus はグループ名と記事番号によって、それぞれのメッセージを特定します。 それら記事番号に関するちょっとした説明をすることは有益かもしれません。ま ず第一に、その数値は正の整数です。第二に Gnus を混乱させることなく古い記 事番号を、後で「再使用」することは普通はできません。すなわち、もしあるグ ループにかつて 42 番の記事があったとしたら、別の記事がその番号を持つこと ができないか、または Gnus が激しく混乱してしまうということです。 (3) 第三に、記事番号はそのグループでの 到着順になっていなければならないことです。メッセージの日付も、必ず到着順 になっているわけではありませんが。
すでに前の節で、記事番号は一回使われただけで役目を終わらなければならな い「厳しい」制限について説明しました。しかし、記事番号の並びに抜けがある と Gnus はとても混乱してしまうので、連続した 通し 番号を付けるこ とが有用なのかもしれません。ただし「再使用不可」の制限があるので、完全に 番号の抜けを回避できるとは限りません。また、可能な限り記事番号を 1 から 始めることは、番号を使い切ってしまうことを避けるために役立ちます。
慣例として、バックエンドは nnなんたら
と名付けられますが、 Gnus には `nnheader.el'、`nnmail.el' および `nnoo.el' の ように、いくつかのバックエンドではない nnかんたら
があることに注 意してください。
ここでの例と定義では、想像上のバックエンド nnchoke
を引き合いに出 すことにします。
11.7.2.1 必須バックエンド関数 11.7.2.2 任意バックエンド関数 11.7.2.3 エラーメッセージの発行 11.7.2.4 新しいバックエンドを書く 11.7.2.5 新しいバックエンドを Gnus に繋げる 11.7.2.6 メール風バックエンド
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
(nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD)
articles は記事番号の範囲か、Message-ID
のリストのどちらか です。現在のバックエンドは、どちらも完全にサポートしているわけではありま せん---記事番号のひと続き (リスト) だけで、多くのバックエンド は Message-ID
による取得をサポートしていません。でも、それらは両 方サポートすることに努めるべきです。
結果のデータは HEADs か NOV 行のいずれかであるべきで、戻り値は これを反映した headers
か nov
のどちらかでなければなりませ ん。これは今後、HEADs と NOV 行が混在する various
に拡 張されるかもしれませんが、現在の Gnus ではサポートされていません。
fetch-old が nil
ではなかったら、ある意味での「余分なヘッ ダー」を取得しようとします。これは通常、articles
の中の最小番号の 記事よりも小さい番号を持っている (最大で) fetch-old 個の記事と、 articles
の中で欠番になっている記事の、余分なヘッダーを取得します。 もしバックエンドがこの要求に従うことを煩わしいと思った場合には、このパラ メーターの存在は無視されることもあります。この値が nil
でも数値で もなかったら、最大限の取得を行ないます。
これが HEAD の例です:
221 1056 Article retrieved. Path: ifi.uio.no!sturles From: [email protected] (Sturle Sunde) Newsgroups: ifi.discussion Subject: Re: Something very droll Date: 27 Oct 1994 14:02:57 +0100 Organization: Dept. of Informatics, University of Oslo, Norway Lines: 26 Message-ID: <[email protected]> References: <[email protected]> NNTP-Posting-Host: holmenkollen.ifi.uio.no . |
そういうわけで、headers
という戻り値は、データバッファーにその要 素数と同じ個数のヘッダーがあることを暗示します。
これがそういうバッファーの BNF 定義です:
headers = *head head = error / valid-head error-message = [ "4" / "5" ] 2number " " |
(ここで使った BNF の版は RFC822 で使われているものです。)
戻り値が nov
だった場合は、データバッファーに は network overview database 行が含まれていなければなりません。こ れは基本的には複数の欄をタブで区切ったものです。
nov-buffer = *nov-line nov-line = field 7*8[ |
これらの欄に何が含まれるべきかをきちんと調べたいのならば、 11.7.4 ヘッダー を参照してください。
(nnchoke-open-server SERVER &optional DEFINITIONS)
ここでの server は仮想サーバー名です。definitions はこの仮想 サーバーを定義する (VARIABLE VALUE)
の組のリストです。
サーバーと接続できなかった場合でも、エラーをシグナルして処理を中断しては いけません。バックエンドは、これ以後さらにこのサーバーに接続しようとする 試みを、拒否することを選ぶことができます。実際、そうすべきです。
すでにそのサーバーと接続されていた場合には、この関数は nil
ではな い値を返さなければなりません。このとき、返される結果のデータはありません。
(nnchoke-close-server &optional SERVER)
server との接続を閉じて、これに関連するすべてのリソースを開放しま す。もし何らかの理由でサーバーを閉じることができない場合は、 nil
を返します。
返される結果のデータはありません。
(nnchoke-request-close)
すべてのサーバーとの接続を閉じて、バックエンドが保有していたすべてのリソー スを開放します。このバックエンドによって作られたすべてのバッファーを削除 しなければなりません。(もっとも nntp-server-buffer
は削除されませ んが。) 普通この関数は Gnus が終了するときにのみ呼び出されます。
返される結果のデータはありません。
(nnchoke-server-opened &optional SERVER)
server が現在の仮想サーバーで、かつその物理サーバーへの接続が生き ている場合、この関数は nil
ではない値を返さなければなりません。ど んな状況でも、この関数は接続が失われたサーバーへの再接続を試みてはいけま せん。
返される結果のデータはありません。
(nnchoke-status-message &optional SERVER)
この関数は server からの最後のエラーメッセージを返します。
返される結果のデータはありません。
(nnchoke-request-article ARTICLE &optional GROUP SERVER TO-BUFFER)
この関数の結果のデータは、article で指定された記事でなければなりま せん。Message-ID
か番号のいずれかを指定することができます。 Message-ID
による記事の取得を実装するかどうかは任意ですが、それが 可能になっている方が良いでしょう。
to-buffer が nil
ではなかったら、結果のデータは通常のデータ バッファーの代わりに、このバッファーに返さなければなりません。Gnus は主 に、記事バッファーに直接記事を挿入するように要求しますが、これによって、 多量のデータをあるバッファーから別のバッファーにコピーするのを避けること が可能になります。
もし少しでも可能なら、この関数は cons セルを返すべきです。そ の car
は取得した記事があるグループ名で、cdr
は記事の番号 です。これによって、Message-ID
で記事を取得したときに、Gnus が本 当のグループと記事番号を知ることができるようになるでしょう。これが不可能 な場合は、記事の取得に成功したときに t
を返さなければなりません。
(nnchoke-request-group GROUP &optional SERVER FAST INFO)
group のデータを取得します。この関数には group を現在のグルー プにするという副作用もあります。
fast が設定されたなら、有用なデータを返す面倒を行なわずに、単 に group を現在のグループにします。
info が与えられると、バックエンドがグループの情報構 造 (info) を更新することを可能にします。
これが結果のデータの例と、定義それ自体です:
211 56 1000 1059 ifi.discussion |
最初の数値は状態で、これは 211 でなくてはなりません。次はそのグループに ある記事の総数、最小の記事番号、最大の記事番号、そして最後がグループ名で す。しかし、いくつかの記事はキャンセルされているかもしれないので、記事の 総数は、記事の最大・最小番号から単純に考えられる数よりも小さいかもしれな いことに注意してください。Gnus は総数を単に捨ててしまうので、(それが問題 であるときに) 正しい値を生成する面倒を負うべきかどうかは、読者への課題と して残してあります。もしそのグループに記事が無かったら、最小記事番号は 1、 最大は 0 として報告しなければなりません。
group-status = [ error / info ] eol error = [ "4" / "5" ] 2 " " |
(nnchoke-close-group GROUP &optional SERVER)
group を閉じて、それに関連するすべてのリソースを開放します。ほとん どのバックエンドは何もすることが無いでしょう。
返される結果のデータはありません。
(nnchoke-request-list &optional SERVER)
server 上で利用可能なすべてのグループのリストを返します。本当 に 全部 という意味です。
これは、たった二つしかグループを持っていないサーバーの場合の例です:
ifi.test 0000 y ifi.discussion 3324 3300 n |
各行にはグループ名、そのグループ内の最大の記事番号、最小の記事番号、そし て最後にフラグがあります。もしそのグループに記事が無かったら、最小記事番 号は 1、最大は 0 として報告しなければなりません。
active-file = *active-line active-line = name " " " " |
フラグは、そのグループが読み出し専用 (`n') か、司会者付 き (`m') なのか、死んでいる (`x') か、どこか他のグループの別 名 (`=other-group') なのか、それらのどれでもない (`y') のかを 示します。
(nnchoke-request-post &optional SERVER)
この関数は、現在のバッファーを投稿しなければなりません。投稿が成功したか どうかを返しても構いませんが、必須ではありません。例えば、投稿が非同期に 行なわれる場合は、この関数が終了した時点では、投稿は普通完了していません。 その場合この関数は、投稿を完了させることができないときに、それをはっきり と利用者に知らせる見張り (sentinel) のようなものを設定するべきでしょう。
この関数から返される結果のデータはありません。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
(nnchoke-retrieve-groups GROUPS &optional SERVER)
groups はグループのリストです。また、この関数はそれら全部のグルー プのデータを要求しなければなりません。どうやってそれを行なうかは Gnus の 知ったことではありませんが、これをできるだけ迅速な方法で行なうことに挑ま なければなりません。
この関数の戻り値は active
か group
のどちらでも良く、それ が結果のデータの形式が何であるかを示します。前者 は nnchoke-request-list
によるデータと同じ形式です。一方後者 は nnchoke-request-group
が返すものと同じ形式の、バッファーを埋め る行です。
group-buffer = *active-line / *group-status |
(nnchoke-request-update-info GROUP INFO &optional SERVER)
Gnus のグループ情報 (see 節 11.7.6 グループ情報) が、バックエンドのそれを改変す るために渡されます。これはバックエンドが (仮想グループや imap グループの 場合のように)、本当にすべての情報を持っている場合に役に立ちます。この関 数は、その要求に適合させる情報を破壊的に置き換えて、nil
ではない 値を返さなければなりません (例外的に nntp-request-update-info
は、 ネットワーク資源を浪費しないように常に nil
を返します)。
この関数が返す結果のデータはありません。
(nnchoke-request-type GROUP &optional ARTICLE)
利用者が「ニュースを送信する」命令 (例えば、概略バッファーで F) を 実行したときに、Gnus は利用者がフォローアップしようとしている記事がニュー スなのかメールなのかを知っている必要があります。この関数 は group の中の article がニュースであれば news
を、 メールであれば mail
を、その種別を判定できない場合 は unknown
を返さなければなりません。(article 引数は、メー ルグループとニュースグループがごちゃまぜになっているかもしれな い nnvirtual
において必要です。) group と article は 両方とも nil
であるかもしれません。
この関数が返す結果のデータはありません。
(nnchoke-request-set-mark GROUP ACTION &optional SERVER)
記事の印を設定/消去/追加します。通常 Gnus は記事の印 (既読、可視、期限切 れ消去など) を内部で扱い、`~/.newsrc.eld' に保存します。しかし、い くつかのサーバー (例えば IMAP) は記事のすべての情報をサーバー で持っているので、Gnus が印の情報をサーバーに伝搬させる必要があります。
action は印を設定する要求のリストで、以下の様式を持ちます:
(RANGE ACTION MARK) |
range は印を付けたい記事の範囲です。action は add
ま たは del
で、印を追加したり消すために使われます (言及されていない すべての印は保存します)。mark は印のリストです。それぞれの印はシン ボルです。現在使われている印は read
, tick
, reply
, expire
, killed
, dormant
, save
, download
, unsend
および forward
ですが、あなたのバッ クエンドは、可能ならこれらを制限をするべきではありません。
矛盾する動作が指定された場合は、リストの最後の動作が効力を持つものになる べきです。すなわち、action が記事 1 に 可視
印を追加する要 求を含んでいて、リストのおしまいの方で、同じ記事から印を消去することを要 求していたならば、印は実際には消去されるべきです。
action リストの例です:
(((5 12 30) 'del '(tick)) ((10 . 90) 'add '(read expire)) ((92 94) 'del '(read))) |
関数は印を設定できなかった記事の範囲を返さなければなりません (現在はどん な目的のためにも使われていません)。
この関数が返す結果のデータはありません。
(nnchoke-request-update-mark GROUP ARTICLE MARK)
バックエンドが嫌う印を利用者が設定しようとしたら、この関数がその印を変更 することができます。この関数が返したどんなものでも、 Gnus は article への印として元の mark の代わりに使います。バッ クエンドがそれでも構わない場合には、元の mark を返さなければなりま せん。nil
やその他のゴミを返してはいけません。
私に考えられるこれの利用法は、それで nnvirtual
が行なっていること だけです---その仮想グループで既読の印を付けると、もし構成要素のグループ が自動期限切れ消去可能ならば、結果としてその記事に期限切れ消去の印が付け られます。
この関数が返す結果のデータはありません。
(nnchoke-request-scan &optional GROUP SERVER)
バックエンドが新着記事を検査する要求を (Gnus か他の何かによって) 行なう ときはいつでも、あれやこれやとこの関数が呼び出されるでしょう。この関数が 起動されると、一般にメールバックエンドはスプールファイルを読む か POP サーバーに問い合わせます。group に留意する必要は ありません---バックエンドが、一つのグループだけを走査するのが大変すぎる と判断した場合には、すべてのグループを総ががりで走査しても構いません。で すが、その方が実用的ならば、局所に限定するのが良いでしょう。
この関数が返す結果のデータはありません。
(nnchoke-request-group-description GROUP &optional SERVER)
この関数が返す結果のデータは、group の説明でなければなりません。
description-line = name |
(nnchoke-request-list-newsgroups &optional SERVER)
この関数が返す結果のデータは、サーバー上で利用できるすべてのグループの説 明でなければなりません。
description-buffer = *description-line |
(nnchoke-request-newgroups DATE &optional SERVER)
この関数から返される結果のデータは、`date' 以降に作成されたすべての グループでなければなりません。`date' は人間が読める普通の日付の形 式 (すなわち、メールやニュースのヘッダーで使われる形式で、ディフォルトは 関数 message-make-date
が返すもの) です。データは active バッファー の形式でなければなりません。
この関数が「多すぎる」グループを返すのはオッケーです。いくつかのバックエ ンドでは、新しいグループだけではなくて、すべてのグループのリストを返す方 が安上がりに済むことを見出すかもしれません。しかし、たくさんのグループが あるバックエンドで、これをしてはいけません。普通、利用者が自分で作ったグ ループならば多すぎることはないでしょうから、nnml
とそれに類するも のはたぶん心配ありません。しかし nntp
のようなバックエンドでは、 グループはサーバーによって作られているので、いかにもたくさんのグループが ありそうです。
(nnchoke-request-create-group GROUP &optional SERVER)
この関数は group という名前の空のグループを作成しなければなりませ ん。
返されるデータはありません。
(nnchoke-request-expire-articles ARTICLES &optional GROUP SERVER FORCE)
この関数は、articles の範囲のすべての記事に対して期限切れ消去の処 理を行ないます (現在 articles は記事番号の単純なリストです)。記事 がどれだけ古いかを、この関数で消去される前に判定することは、バックエンド に任されています。force が nil
ではない値だったら、それらが どんなに新しくても、すべての articles を消去しなければなりません。
この関数は削除しなかった、あるいは削除することができなかった記事のリスト を返さなければなりません。
返される結果のデータはありません。
(nnchoke-request-move-article ARTICLE GROUP SERVER ACCEPT-FORM &optional LAST)
この関数は group にある記事 article (番号) を、 accept-form を呼び出すことによって移動しなければなりません。
この関数は、当の記事を移動させるための準備として、それが記事に付加したど んなヘッダー行をも削除して、記事を大体において「きれい」にしておく必要が あります。そして「きれい」な記事があるバッファーで、 accept-form を eval
しなければなりません 。これは実際に複製 を行ないます。もしこの eval
が nil
以外の値を返したら、そ の記事を削除しなければなりません。
もし last が nil
だったら、それはこの直後にさらに要求が発行 される見込みが高いことを意味し、これによっていくらか最適化ができるように なります (訳注: 例えば nil
だったらサーバーとの接続を閉じないでお くとか)。
この関数は、移動先のグループ名が car
で、移動先の記事番号 が cdr
である cons セルを返さなければなりません。
返されるデータはありません。
訳注: 移動先のグループは accept-form の中で指定します。そこで使わ れるのが、次の nnchoke-request-accept-article
です。
(nnchoke-request-accept-article GROUP &optional SERVER LAST)
この関数は、現在のバッファーの中身を group に挿入します。 last が nil
だったら、この関数へのさらなる呼び出しが直ちに 行なわれるだろうという意味です。
この関数はグループ名が car
で、移動先の記事番号が cdr
であ る cons セルを返さなければなりません。
そのグループは、記事を受け入れてもらうことをバックエンドが要求する前に存 在しなければなりません。
返されるデータはありません。
(nnchoke-request-replace-article ARTICLE GROUP BUFFER)
この関数は group から記事 article (番号) を削除して、代わり に buffer の中身をそこに挿入しなければなりません。
返されるデータはありません。
(nnchoke-request-delete-group GROUP FORCE &optional SERVER)
この関数は group を消去しなければなりません。もし force が設 定されていたら、そのグループ内のすべての記事を本当に消去して、そしてその グループ自身を消去しなければなりません。(もし「グループ自身」というもの があれば。)
返されるデータはありません。
(nnchoke-request-rename-group GROUP NEW-NAME &optional SERVER)
この関数はグループ名を group から new-name に変更しなければ なりません。group 内にあるすべての記事は、new-name に移動し なければなりません。
返されるデータはありません。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
バックエンドはエラーの状況の報告に nnheader-report
を使わなければ なりません---要求を実行できないときにエラーを生起させてはいけません。こ の関数の最初の引数はバックエンド名のシンボルで、残りは、複数の引数があれ ば format
への引数として解釈され、一つであればただの文字列です。 この関数は常に nil
を返さなければなりません。
(nnheader-report 'nnchoke "You did something totally bogus") (nnheader-report 'nnchoke "Could not request group %s" group) |
一方 Gnus は、サーバーから nil
を返されたとき に nnheader-get-report
を呼び出します。するとこの関数が、当のバッ クエンドに対して最後に報告されたメッセージを返します。この関数は一つの引 数---サーバーのシンボルを取ります。
内部的には、これらの関数は back-end-status-string
にアクセ スます、したがって nnchoke
バックエンドはそのエラーメッセージ を nnchoke-status-string
に格納します。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
多くのバックエンドはよく似通っています。nnml
は nnspool
と 瓜二つですが、サーバー上の記事を編集することができます。nnmh
はま るで nnml
のようですが、アクティブファイルを使わないし、概要デー タベースも保持しません。nndir
は nnml
にとても似ていますが、 これには「グループ」の概念は無く、記事の編集はできません。
新しいバックエンドを書くときに他のバックエンドから関数を「継承」できたら なあ、と思うのは理に適っています。そしてまさに、あなたがそうしたければ、 それができるのです。(あなたがそうしたくなければしなくても良いですよ、も ちろん。)
すべてのバックエンドは、公共変数と公共関数を nnoo
というパッケー ジを使って宣言します。
他のバックエンドから関数を継承するには (そして現在のバックエンドから他の バックエンドに関数を継承できるようにするには)、以下のマクロを使用しなけ ればなりません:
nnoo-declare
(nnoo-declare nndir nnml nnmh) |
ここで nndir
は、nnml
と nnmh
の両方から関数を継承 するつもりであることを宣言しています。
defvoo
defvar
と等価ですが、その変数を公共サーバー変数とし て登録します。ほとんどの状態志向型の変数は、defvar
ではな く defvoo
によって宣言するべきです。
通常の defvar
の引数に加えて、このマクロは親バックエンドにおける 変数のリストを取ります。それらの親バックエンドで定義されている関数を子の バックエンドで実行するときに、その関数の中でアクセスされる親の変数を、子 の変数で置き換えます。
(defvoo nndir-directory nil "Where nndir will look for groups." nnml-current-directory nnmh-current-directory) |
これは nndir
のために nnml
の関数が呼び出されたときに、 nnml-current-directory
は nndir-directory
に設定されるとい う意味です。(nnmh
も同様です。)
nnoo-define-basics
(nnoo-define-basics nndir) |
deffoo
defun
のようなもので、同一の引数を取ります。通 常の defun
の処理に加えて、このマクロは他のバックエンドがそれを継 承できるように、その関数が公共物になっているものとして登録します。
nnoo-map-functions
(nnoo-map-functions nndir (nnml-retrieve-headers 0 nndir-current-group 0 0) (nnmh-request-article 0 nndir-current-group 0 0)) |
これは nndir-retrieve-headers
が呼び出されたときに、一番目、三番 目、および四番目の引数が nnml-retrieve-headers
に渡され、一方、二 番目の引数は nndir-current-group
の値として設定されるという意味で す。
nnoo-import
(nnoo-import nndir (nnmh nnmh-request-list nnmh-request-newgroups) (nnml)) |
これは、nndir-request-list
への呼び出しは単 に nnmh-request-list
に引き渡されなければならず、一 方 nnml
の公共関数でまだ nndir
で定義されていないものをこ こで定義するということです。
以下は nndir
バックエンドのちょっと短縮した版です。
;;; nndir.el --- 単一のディレクトリーをニュースグループにする ;; Copyright (C) 1995,1996 Free Software Foundation, Inc. ;;; Code: (require 'nnheader) (require 'nnmh) (require 'nnml) (require 'nnoo) (eval-when-compile (require 'cl)) (nnoo-declare nndir nnml nnmh) (defvoo nndir-directory nil "nndir がグループを探す場所。" nnml-current-directory nnmh-current-directory) (defvoo nndir-nov-is-evil nil "*これが nil でなかったら NOV ヘッダーを取得しません。" nnml-nov-is-evil) (defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group) (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory) (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail) (defvoo nndir-status-string "" nil nnmh-status-string) (defconst nndir-version "nndir 1.0") ;;; インターフェース用の関数。 (nnoo-define-basics nndir) (deffoo nndir-open-server (server &optional defs) (setq nndir-directory (or (cadr (assq 'nndir-directory defs)) server)) (unless (assq 'nndir-directory defs) (push `(nndir-directory ,server) defs)) (push `(nndir-current-group ,(file-name-nondirectory (directory-file-name nndir-directory))) defs) (push `(nndir-top-directory ,(file-name-directory (directory-file-name nndir-directory))) defs) (nnoo-change-server 'nndir server defs)) (nnoo-map-functions nndir (nnml-retrieve-headers 0 nndir-current-group 0 0) (nnmh-request-article 0 nndir-current-group 0 0) (nnmh-request-group nndir-current-group 0 0) (nnmh-close-group nndir-current-group 0)) (nnoo-import nndir (nnmh nnmh-status-message nnmh-request-list nnmh-request-newgroups)) (provide 'nndir) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
あなたの新しいバックエンドを Gnus で使い始めるのはとても簡単です---単 に gnus-declare-backend
関数で宣言するだけです。これはバックエン ドを gnus-valid-select-methods
変数に追加します。
gnus-declare-backend
は二つの引数を取ります---バックエンドの名前 と任意の数の能力 abilities です。
これが例です。
(gnus-declare-backend "nnchoke" 'mail 'respool 'address) |
そして上記の行が `nnchoke.el' ファイルに入ります。
能力には以下のものがあります:
mail
post
post-mail
none
respool
address
prompt-address
nntp
のようなバックエ ンドに当てはまりますが、nnmbox
はそうではありません。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メールバックエンドがその他のバックエンドに対して一線を画しているのは、ほ とんどのメールバックエンドが `nnmail.el' で定義されている共通の関数 に強く依存しているという点です。例えばこれは nnml-request-scan
の 定義です:
(deffoo nnml-request-scan (&optional group server) (setq nnml-article-file-alist nil) (nnmail-get-new-mail 'nnml 'nnml-save-nov nnml-directory group)) |
単に nnmail-get-new-mail
にいくつか引数を与えて呼び出すだけで、 nnmail
がメールの移動や分割のすべての面倒を見てくれます。
この関数は四つの引数を取ります。
nnmail-get-new-mail
は、それぞれの記事を保存するため に back-end-save-mail
を呼び出します。 back-end-active-number
は、この記事に割り当てられた記事番号 を調べるために呼び出されます。
この関数は次の変数も使用します: back-end-get-new-mail
(この バックエンドの新着メールを受け取るかどうか)、新しいアクティブファイルを 生成するための back-end-group-alist
およ び back-end-active-file
です。 back-end-group-alist
は、以下のようなグループとアクティブの 連想リストです:
(("a-group" (1 . 10)) ("some-group" (34 . 39))) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
スコアファイルは簡単に分析できるだけでなく、極めて柔軟な対応ができるよう になっています。それには Emacs Lisp のリストとして読み込むことができるよ うな構文がふさわしいだろうと判断されました。
これは良くあるスコアファイルです:
(("summary" ("win95" -10000 nil s) ("Gnus")) ("from" ("Lars" -1000)) (mark -100)) |
スコアファイルの BNF 定義です。
score-file = "" / "(" *element ")" element = rule / atom rule = string-rule / number-rule / date-rule string-rule = "(" quote string-header quote space *string-match ")" number-rule = "(" quote number-header quote space *number-match ")" date-rule = "(" quote date-header quote space *date-match ")" quote = |
認識不可能なスコアファイルの要素は無視されるべきですが、捨ててしまっては いけません。
ご覧のように空白が必要ですが、空白の量と型は重要ではありません。つまり、 スコアファイルの様式はプログラマーに任されています---すべてを一つの長ーー い行に吐き出す方がより簡単なのであれば、それでも構いません。
いろいろなアトムの意味は、このマニュアルのどこかで説明されていま す (see 節 7.4 スコアファイル様式)。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は記事のヘッダーを溜めておくために、内部的には NOV の規格 を怪しげなやり方で踏襲する様式を使っています。NOV の仕様を見た 作者が、恥知らずにもすべてを 盗んだ と思うかもしれませんが、それ は正しいです。
「ヘッダー」はひどく荷の重い用語です。「ヘッダー」は RFC1036 では記事の 頭の行 (例えば、From
) について話すのに用いられています。それは多 くの人が「ヘッド」---「ヘッダーと本文」の同義語として使っています。(私に 言わせれば、これは避けるべきです。) そして Gnus は、私がここで話す「ヘッ ダー」と言う様式を内部的に使っています。これは基本的には九つの要素からな るベクトルで、それぞれのヘッダー (あ痛っ) が一つの場所を占めます。
これらの場所は、順番に number
, subject
, from
, date
, id
, chars
, lines
, xref
, およ び extra
です。これらの場所を読み出したり設定するマクロがありま す---それらはすべて、それぞ れ mail-header-
と mail-header-set-
いう予想しやすい名前を 持っています。
extra
のための場所がヘッダーと値の対の連想リストであることを除い て、これらすべての場所には文字列が入ります (see 節 3.1.2 To From Newsgroups)。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
GNUS は非常に有用な概念を導入してくれました。私はそれをたくさん使い、 かなり入念に仕上げました。
設問は単純です: 何か番号で呼ぶことができる大量のもの (粗雑な 例と しては、例えば記事) を持っていて、それらが「含まれている」ことを表現した いとしましょう。それらを順番に並べるのは、あまり便利ではありません。 (20,000 個を順番に並べたものは、ちょっと長たらしいですよね。)
解決策は設問と同じくらい単純です。単にその並びを折りたためば良いのです。
(1 2 3 4 5 6 10 11 12) |
は次のように変形されます。
((1 . 6) (10 . 12)) |
単独のものを表すために `(13 . 13)' のようなやっかいな要素を持たなく ても良いように、`13' は有効な要素になっています。例えば:
((1 . 6) 7 (10 . 12)) |
以下のような二つの範囲を比較して、それらが等しいがとうかを調べるのは、少 し手のこんだことになります:
((1 . 5) 7 8 (10 . 12)) |
と
((1 . 5) (7 . 8) (10 . 12)) |
は等しいです。実際のところ、下り順で並んでいないリストは範囲です:
(1 2 3 4 5) |
これはかなり長ったらしいものですが、完璧に有効な範囲です。以下も有効です:
(1 . 5) |
そして、これはその前の範囲と等しいものです。
これは範囲の BNF 定義です。もちろん、数値の並びが下り順であってはならな いことを覚えておかなければなりません。(同じ数値を任意の回数にわたって繰 り返すことができますが、範囲の扱いにおいて消え去る傾向があります。)
range = simple-range / normal-range simple-range = "(" number " . " number ")" normal-range = "(" start-contents ")" contents = "" / simple-range *[ " " contents ] / number *[ " " contents ] |
現在 Gnus は既読記事と記事の印を維持するために範囲を使っています。当局が 私にそれをさせたがっているのなら、私は数の範囲の操作を C で実装しようと 思っています。(私はまだ尋ねていません。と言うのは、普通の連続体に変換し 直さずに、世の中を完全に範囲に基づいたものにするためには何が必要かを、私 はもっと考えなければならないからです。)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus はグループのすべての永続的な情報を group info リストに格納し ます。このリストは 3 から 6 (またはそれ以上) の長さの要素で、徹底的にグ ループを記述します。
ここにあるのはグループ情報 (group info) の二つの例です。一つは非常に単純 なグループですが、二つ目はもっと複雑なものです:
("no.group" 5 ((1 . 54324))) ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55)) ((tick (15 . 19)) (replied 3 6 (19 . 3))) (nnml "") ((auto-expire . t) (to-address . "[email protected]"))) |
最初の要素は「グループ名」---とにかく Gnus が知っているグループです。二 番目の要素は「購読度」で、普通は小さな整数です。(それは「階級」(rank) に なることもできます。car
がレベルで cdr
がスコアのコンスセ ルです。) 三番目の要素は既読記事の範囲のリストです。四番目の要素はいろい ろな種類の記事の印のリストのリストです。五番目の要素は選択方法です (もし くは、そう言いたければ仮想サーバーです)。六番目の要素は「グループパラメー ター」のリストで、この章はそのためにあります (訳注: ほんとうに?)。
最後の三つの要素はどれでも、必要が無ければ存在しないこともあります。実際、 グループの非常に大部分は最初の三つの要素だけを持ち、それは (最後の三要素 が省略できることは) 非常に多くのコンスセルを節約します。
これはグループ情報様式の BNF 定義です:
info = "(" group space ralevel space read [ "" / [ space marks-list [ "" / [ space method [ "" / space parameters ] ] ] ] ] ")" group = quote |
実は `marks' の規則はごまかしです。`marks' は `range' と ともに cons を構成する `
情報の要素群にアクセスして、それらの値を取得または設定するために、 Gnus は一連のマクロを提供しています。
gnus-info-group
gnus-info-set-group
gnus-info-rank
gnus-info-set-rank
gnus-info-level
gnus-info-set-level
gnus-info-score
gnus-info-set-score
gnus-info-read
gnus-info-set-read
gnus-info-marks
gnus-info-set-marks
gnus-info-method
gnus-info-set-method
gnus-info-params
gnus-info-set-params
取得するためのすべての関数は一つの引数を取ります---情報のリストです。設 定するための関数は二つの引数を取ります---情報のリストと新しい値です。
グループ情報の最後の三つの要素は必須ではないので、要素を設定する前にグルー プ情報を拡張する必要があるでしょう。それが必要な場合、最後の三つの設定す るための関数の第三引数に nil
ではない値を指定すれば、自動的に拡張 させることができます。(訳注: 例えば三つの要素しかない情報に四つ目の要素 を加える処理を第三引数を使わずに行なうと、(setcar (nthcdr 3 INFO) VALUE)
というコードが実行される結果、エラーになってしまいます。)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は Emacs 標準の interactive
の仕様を、シンボル接頭引数を簡単 に使うことができるようにするために、少し拡張していま す (see 節 9.3 シンボルの接頭引数)。これはその使い方の例です:
(defun gnus-summary-increase-score (&optional score symp) (interactive (gnus-interactive "P\ny")) ... ) |
最上のものは interactive
の式を返すマクロとし て gnus-interactive
を実装することでしょうが、Emacs は関数が対話 的かどうかを調べるために、ラムダ式に対して単純に assq
を行なうの で、これは不可能です。そこで、文字列を受け取って interactive
で使 うことができる値を返す gnus-interactive
関数を、代わりに持つこと にしました。
この関数は (ほとんど) すべての interactive
の指定を受け付けますが、 もう少し加えることにします。
gnus-current-prefix-symbol
です。
gnus-current-prefix-symbol
です。
gnus-summary-article-number
です。
gnus-summary-article-header
です。
gnus-group-group-name
です。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus は Emacs, XEmacs と Mule で動作するので、そのうちの一つを主環境とす ることに決めました。私は Emacs を選びました。私が XEmacs や Mule を好き ではないということではなく、それがアルファベット順で最初に来たからです。 (訳注: 現在 Gnus がサポートしている (X)Emacs については 11.2.5 Emacsen を 参照してください。)
これは、Gnus は Emacs で少しの警告も無くバイトコンパイルできるのに対して、 XEmacs はバイトコンパイルをしている間にギガバイトくらいの警告を出すとい うことでもあります (訳注: 現在はそんなことはありません)。私は些細な失敗 を見つけ出すことに役立てるためにバイトコンパイルの警告を使っているので、 それはとても助けになります。
さらに、私は首尾一貫して Emacs の関数のインターフェースを使ってきました が、それらの関数のために Gnus の別名 (aliases) を使ってきました。例を出 しましょう: Emacs が関数 run-at-time
を定義している一方で、 XEmacs は関数 start-itimer
を定義しています。そこで、私 は Emacs の run-at-time
と同じ引数を受け取 る gnus-run-at-time
という関数を定義しました (訳注: 現在 は run-at-time
に統一されています)。Gnus を Emacs で実行している ときは、gnus-run-at-time
は単に run-at-time
の別名になって います。しかし XEmacs で実行したときは、gnus-run-at-time
は次の関 数の別名となっています (訳注: 現在こういうものはありません):
(defun gnus-xmas-run-at-time (time repeat function &rest args) (start-itimer "gnus-run-at-time" `(lambda () (,function ,@args)) time repeat)) |
この種のことが多くの関数のために行なわれています。Gnus は XEmacs で実行 しているときに、元からある Emacs の関数を再定義しません---代わりにそれは、 Gnus の等価なものに defalias
をすることによって行ないます。その方 が、よりきれいです。
XEmacs の関数のインターフェースの方が明らかにきれいな場合は、私は代わり にそれを使います。例えば、gnus-region-active-p
は XEmacs で は region-active-p
の別名であるのに対して、Emacs では関数です。
もちろん XEmacs を私の基本プラットフォームに選んで、関数の割り当てを逆に することもできましたが、私はそうしませんでした。XEmacs で Gnus を実行す るときの、これらの遠回しな割り当てが強いる性能への打撃は、僅かなはずです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
11.7.9.1 アクテイブファイルの様式 11.7.9.2 ニュースグループファイルの様式
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
アクティブファイルは、対象になっているサーバーのすべての使用可能なグルー プの目録を保持します。そこには、それぞれのグループの最高と最低の記事番号 の目録もあります。
これは普通のアクティブファイルからの抜粋です:
soc.motss 296030 293865 y alt.binaries.pictures.fractals 3922 3913 n comp.sources.unix 1605 1593 m comp.binaries.ibm.pc 5097 5089 y no.general 1000 900 y |
これはこのファイルの疑似 BNF 定義です:
active = *group-line group-line = group spc high-number spc low-number spc flag |
このファイルの完全な説明は、`innd' のマニュアルページ、特 に `active(5)' を見てください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ニュースグループファイルは、グループの目録をそれらの説明とともに保持しま す。サーバーにあるすべてのグループがある必要は無いし、そのファイルにある すべてのグループがサーバーに存在しなければならないこともありません。この ファイルは純粋に利用者の情報のためにあります。
様式はとても単純です: グループ名、タブ、そして説明です。これが定義です:
newsgroups = *line line = group tab description |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
信じるかどうかはともかく、Gnus Love Boat の旅に搭乗する前にあま り Emacs を使ったことが無いという Gnus の利用者たちがいます。 “C-M-a”や「リージョンを kill する」、それに 「gnus-flargblossen
を連想リストに設定してください。そのキーはグ ループ名に合致するために使われる正規表現です。」といったことが、あなたに とって少しかまったく意味の無い魔法の言葉ならば、この付録はあなたのために あります。もしあなたがすでに Emacs に親しんでいるのであれば、これを無視 してあなたの猫を可愛がりに行ってください。
11.8.1 打鍵 11.8.2 Emacs Lisp 備え付けの Emacs プログラミング言語
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
はい、Emacs を使うとコントロールキー、シフトキー、メタキーをたくさん使う ようになるでしょう。これは一部の人々 (主に vi
利用者) には非常に 煩わしいものですが、私たちはその地獄を愛します。諦めてそれを甘受してくだ さい。Emacs は本当は“Escape-Meta-Alt-Control-Shift”の略で、あなたがい かがわしい (Emacs の作者のような) 出どころから聞いているかもしれない “Editing Macros”ではありません。
シフトキーは普通は両手の小指の近くにあって、普通は大文字などを打つために 使われています。あなたは絶え間なくそれを使いますよね。コントロールキーに は普通“CTRL”のような印が付いています。メタキーは奇妙なことにどのキーボー ドでもそういう印が付いていません。それは普通はキーボードの左手側にあって、 最下段にあるのが一般的です。
さて、私たち Emacs 人は、それがひどく不便なので「meta-control-m キーを押 す」とは言いません。私たちが使うのは「C-M-m を押す」です。 M- は「メタ」を現す接頭語で、“C-”は「コントロール」を意味する接 頭語です。ですから「C-k を押す」は、「コントロールキーを押し続けな がら次に k を押す」ということです。「C-M-k を押す」は「メタ キーとコントロールキーを押し続けながら次に k を押す」ということで す。簡単です、よね?
このことは、すべてのキーボードがメタキーを持っているわけではないという事 実によって、多少ややこしくなっています。そういう場合には「エスケープ」キー を使えばよいでしょう。ただしメタキーを持っているときより作業が増えるので、 メタキーのあるキーボードを手に入れていただくことを謹んでお勧め申し上げま す。それ無しでは生きて行けないでしょう。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacs はエディターの王様です。なぜなら、それが真の Lisp インタープリター だからです。あなたが叩くすべてのキーは、何らかの Emacs Lisp コードの小片 を実行します。Emacs Lisp はインタープリターで実行される言語なので、どの キーが何のコードを実行するかを任意に設定することができます。あなたは、た だそうすれば良いのです。
Gnus は Emacs Lisp によって書かれていて、インタープリターで実行されるた くさんの関数によって動作します。(これらは速度のためにバイトコンパイルさ れていますが、インタープリターで実行されることに変わりはありません。) も し Gnus のある動作が好みではないと感じたら、それを違うやり方で実行させる のは取るに足らないことです。(えーと、少なくとも Lisp コードの書き方を知っ ていれば。) でもそれはこのマニュアルの範疇ではないので、Gnus をカスタマ イズするために `~/.gnus.el' ファイルで普段使われるいくつかの一般的 な構文のことだけを話すことにしましょう。(`~/.emacs' ファイルを使う こともできますが、Gnus に関する設定には `~/.gnus.el' ファイルを使う 方がはるかに良いです。)
もし変数 gnus-florgbnize
を四 (4) に設定したいのであれば、以下の ものを書きましょう:
(setq gnus-florgbnize 4) |
この関数 (本当は「特殊形式」(special form)) setq
は、変数を何かの 値に設定することができるものです。これがあなたが本当に知っていなければな らないことのすべてです。これからは Gnus の動作を変更するために、たくさん のこういうもので `~/.gnus.el' ファイルを埋め尽くすことができます。
そういうものを `~/.gnus.el' ファイルに入れておくと、それらは次回 に Gnus を起動したときに読み込まれ、eval
(それは「実行」 の Lisp 語です) されます。もし変数をすぐに変更したいのであれば、閉じ括弧 の後ろで C-x C-e とタイプすれば良いのです。それは前にある「式」(こ こでは簡単な setq
文) を eval
します。
さあ、やってみましょう---あなたが Emacs の前にいるのなら試してみてくださ い。C-x C-e をタイプすると、エコーエリア (訳注: 一般には Emacs の 画面の一番下) に `4' が現われるのが見えるでしょう。それはあなた が eval
した式の戻り値です。
いくつかの落とし穴:
もしマニュアルが「gnus-read-active-file
を some
に設定しな さい」と言ったなら、それは
(setq gnus-read-active-file 'some) |
ということです。
一方、マニュアル が「gnus-nntp-server-file
を `/etc/nntpserver' に設定しなさ い」と言ったなら、それは
(setq gnus-nntp-server-file "/etc/nntpserver") |
ということです。
ですから、文字列 (後者) を シンボル (前者) と混同しないように注意してく ださい。マニュアルは明確に区別していますが、混乱しやすいかもしれません。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
変更履歴 序 Gnus およびこの FAQ について 11.9.1 インストールに関する FAQ Gnus のインストール 11.9.2 起動 / グループバッファー 11.9.3 メッセージの取得 Gnus でメールとニュースを読めるようにする 11.9.4 メッセージを読む 11.9.5 メッセージの作成 メッセージの作成、または Usenet への投稿 11.9.6 古いメッセージ 11.9.7 ダイアルアップ環境で Gnus を使う オフラインでメールとニュースを読む 11.9.8 助けを得る この FAQ では不充分だったら 11.9.9 Gnus をチューンする 11.9.10 用語集 この FAQ で使われる用語
これは新しい Gnus のよく尋ねられる質問のリストです。
機能に関することや提案は に送ってくだ さい。
これは Gnus のよく尋ねられる質問のリストです。
Gnus は Emacs の要素として実装された Usenet ニュースリーダーおよび電子メー ルのユーザーエージェントです。それはほぼこの十年間何らかの形で存在してお り、その期間の多くにおいて Emacs の標準要素として配布されてきました。 Gnus 5 は最新の (そして最も偉大な) 作品です。オリジナルの版は GNUS と言 い、梅田政信さんが書きました。1994年の秋が忍び寄る頃、退屈していたラルス・ マッグヌ・イングブリグットスン (Lars Magne Ingebrigtsen) は Gnus を書き 直そうと決心しました。
その最大の強みは、極めてカスタマイズに適しているという事実にあります。こ のことを始めて目にすると引いてしまうかもしれませんが、それを利用する準備 ができるまでは、複雑なもののほとんどは無視することができます。そこそこの 量の (いろんなメーリングリストに配信される) 電子メールがやって来るのなら ば、流通量が多いメーリングリストを読みたいけれども遅れずについていくこと ができないのならば、流通量が多いニュースグループを読んでいるのならば、あ るいは単に退屈しているのならば、Gnus はあなたが望むものです。
この FAQ は 2002年3月まで Justin Sheehy によって維持されていました。彼は、 それ以前にすばらしい仕事をしてくれた Steve Baur と Per Abrahamsen に感謝 を表明しています。私たちも同じことをしましょう - ありがとう Justin!
この版は、ユトレヒト大学、オックスフォード、Smart Pages、オハイオ州立大 学に保存されている非公式なハイパーテキスト版や他の FAQ のアーカイブに比 べて、はるかに良いものです。別のフォーマットでそれを手に入れるための情報 が欲しいなら、以下にある質問集を見てください。
ここにある情報は、Gnus 開発メーリングリストの援助でコンパイルされました。 どんなエラーあるいはミスプリントも Gnus チームが犯した誤りです。すみませ ん。
訳注: そしてどんな誤訳の責任も gnus-doc-ja チームにあります。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
質問 1.1 Gnus の最新版は何ですか? 質問 1.2 5.10 では何が新しいですか? 質問 1.3 Gnus はどこで、どうやって取得することができますか? 質問 1.4 tarball で何をすれば良いですか? 質問 1.5 ときどき目にする No Gnus と Oort Gnus って何ですか? 質問 1.6 Emacs のどの版が必要ですか? 質問 1.7 Gnus を Emacs と XEmacs の両方で走らせるには?
Gnus の最新版は何ですか?
ジャーン: Gnus 5.10 がリリースされました。熱いうちに召し上がれ!
バージョン番号の歩みがいささか小さいのに反して、Gnus 5.10 には見逃せない 何トンもの新しい機能があります。現在のリリース (5.13) は、少なくと も 5.8 系のリリースの最新版と同じくらい安定なはずです。
5.10 では何が新しいですか?
第一に Gnus tarball の先頭のディレクトリーにある GNUS-NEWS ファイルに目 を通すべきです。そこでは最も重要な変更が羅列されています。ここでは特に重 要/興味深いものの短いリストを挙げるに留めます:
Gnus はどこで、どうやって取得することができますか?
Gnus は Emacs や XEmacs のリリースとは別に、独自にリリースされます。その ため Emacs に同梱されている版や XEmacs パッケージにある版は、最新ではな いかもしれません (例えば Emacs 21 に同梱されている Gnus 5.9 は、使用期限 が切れています)。 リリースされた最新版 の Gnus は、http://www.gnus.org/dist/gnus.tar.gz から、または匿 名 ftp で ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz から手に入れる ことができます。
tarball で何をすれば良いですか?
`tar xvzf gnus.tar.gz' でアーカイブを展開して、ありふれた
`./configure; make; make install' の手順を実行してください。
MS-Windows では http://www.cygwin.com から Cygwin の環境も取得し てください。それによって上述のことを行なうこと、またはある梱包 器 (packer) (例えば http://www.winace.com にあ る Winace) で tarball を開梱すること、そして tarball に含まれてい る Gnus をインストールするためのバッチファイル `make.bat' を使うこ とができるようになります。
Gnus をシステム領域にインストールしたくない (またはその権限が与えられて いない) ならば、ホームディレクトリーにインストールすることもできます。そ の場合は `~/.xemacs/init.el' ファイルか `~/.emacs' ファイルに 以下の行を加えてください。
(add-to-list 'load-path "/path/to/gnus/lisp") (if (featurep 'xemacs) (add-to-list 'Info-directory-list "/path/to/gnus/texi/") (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/")) |
この行より前に、どんな Gnus に関係するものも確実に無いようにしてください。 MS Windows では "C:/path/to/lisp" のように書いてください (そう、"/" です)。
ときどき目にする No Gnus と Oort Gnus って何ですか?
Oort Gnus は Gnus の開発版の名前で、2003年の秋に Gnus 5.10 になりました。 No Gnus は現行の開発版の名前で、Gnus 5.12 か Gnus 6 になるでしょう。(な ぜ 5.11 ではないのかが不思議ですか? 奇数のバージョン番号は通常 Emacs に 同梱される Gnus の版に使われるのです。)
Emacs のどの版が必要ですか?
Gnus 5.10 は Emacs 20.7 以上、または XEmacs 21.1 以上を必要とします。開 発版の Gnus (No Gnus として知られているも の) は Emacs 21 か XEmacs 21.4 を必要とします。
Gnus を Emacs と XEmacs の両方で走らせるには、どうすれば良いですか?
バイトコンパイルされた Gnus の同じコピーを両者で使うことはできません。 Emacs では Emacs でコンパイルしたものを、XEmacs では XEmacs でコンパイル したものを使ってください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
"Gnus auto-save file exists. Do you want to read it?"
質問 2.1 いつも Gnus を起動すると
というメッセージを受け取るのですが、これは何を意味し
ているのですか? また、どうやったら回避できますか?
ん。どうしてですか?
質問 2.2 Gnus は私がどのグループを講読するかを覚えてくれませ
したら良いですか?
質問 2.3 グループバッファーの各行の形式を変更するには、どう
それらを楽に巡回できるように、カテゴリーごとにまとま
質問 2.4 私のグループバッファーはちょっと混んでいるのですが、
るように並べ変える方法はありますか?
ですか? トピック内のグループを並べ変えるにはどうした
質問 2.5 グループバッファーを手で並べ変えるにはどうしたら良い
ら良いですか?
いつも Gnus を起動すると "Gnus auto-save file exists. Do you want to read it?" というメッセージを受け取るのですが、これは何を意味しているので すか? また、どうやったら回避できますか?
このメッセージが意味するのは、最後に Gnus を使ったときに適切に終了させな かったために、ディスクにその情報 (例えばどのメッセージを読んだかの) を書 き込むことができなかったので、今、それらの情報を自動保存 (auto-save) ファ イルから復活させるかどうかを尋ねられているということです。
このメッセージが発せられるのを回避するには、Gnus を終了させるときに単 に Emacs を kill するのではなく、グループバッファーで q を使うよう にしてください。
Gnus は私がどのグループを講読するかを覚えてくれません。どうしてですか?
Gnus を起動したときに、上記の質問と回答 (see 節 質問 2.1) で述べられてい るメッセージを受け取りませんでしたか? これは同じ問題の別の症状なので、 上記の回答を読んでください。
グループバッファーの各行の形式を変更するには、どうしたら良いですか?
変数 gnus-group-line-format
の値を調整しなければなりません。その やり方についてはマニュア ル (see 節 `グループ行の仕様' in
(setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n") |
私のグループバッファーはちょっと混んでいるのですが、それらを楽に巡回でき るように、カテゴリーごとにまとまるように並べ変える方法はありますか?
Gnus はトピックモードを提供します。それによってグループをその中へ入れて 並べ変えることができるようになります。えーとトピックを使うというのは、例 えば Linux を扱うすべてのグループは linux というトピックに収め、音楽を扱 うすべては music というトピックに収め、スコットランド音楽を扱うすべて は scottish という music のサブトピックに収める、といったことです。
トピックモードに入るには、グループバッファーで単に t を叩いてくだ さい。すると T n を使って現在位置でトピックを作ったり、あるグルー プを T m を使って指定したトピックに移すことができます。さらなるコ マンドについてはマニュアルかメニューを見てください。グループ行をより良く 行下げ (indent) させるためには、gnus-group-line-format
変数の先頭 に %P
書法仕様を含ませる必要があるでしょう。
グループバッファーを手で並べ変えるにはどうしたら良いですか? トピック内の グループを並べ変えるにはどうしたら良いですか?
移動させたいグループの上にポイントを移動して C-k を叩き、次にその グループを移動させる目的の場所にポイントを移動して C-y を叩いてく ださい。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
したのですが、"nntp (news) open error" としか言って
質問 3.1 今まさに Gnus をインストールして `M-x gnus' で起動
くれません。どうしたら良いですか?
わかりません。
質問 3.2 Windows を使っているのですが `~/.gnus.el' の意味が
ザ名とパスワードを保存しておくには、どうすれば良い
質問 3.3 ニュースサーバーが認証を要求します。ディスクにユー
ですか?
する方法が見つけられません。
質問 3.4 Gnus はうまく起動したようなのですが、グループを講読
サーバーへの投稿が許可されません。どうしてですか?
質問 3.5 Gnus がすべてのグループを表示してくれません / この
それは可能ですか?
質問 3.6 複数のサーバーからニュースを取り込みたいのですが、
を取り込むことは可能ですか?
質問 3.7 それから、ローカル・スプール・ファイルからニュース
も読めるようにしたいのです。どうすれば良いですか?
質問 3.8 ニュースを読むのはうまくいきましたが、Gnus でメール
すれば良いですか?
質問 3.9 それから、IMAP でメールを読めるようにするには、どう
が、Gnus を使ってそこからメールを読むことはできます
質問 3.10 職場で MS Exchange サーバーの一つを使っているのです
か?
ように Gnus に指示することはできますか?
質問 3.11 POP3 でメールを取得するサーバーで、メールを消さない
今まさに Gnus をインストールして M-x gnus で起動したのですが、 "nntp (news) open error" としか言ってくれません。どうしたら良いですか?
どこからニュースを取得すべきかを Gnus に教えてあげなければなりません。や り方については文献を読んでください。初めて起動するのであれば、次のような ものを `~/.gnus.el' ファイルに書き込んでみてください:
(setq gnus-select-method '(nntp "news.yourprovider.net")) (setq user-mail-address "[email protected]") (setq user-full-name "Your Name") |
Windows を使っているのですが `~/.gnus.el' の意味がわかりません。
`~/' とは Gnus と Emacs が設定ファイルを探す場所であるホームディレ クトリーのことです。でも、実はその意味を知らなくても構わないのです。 Emacs がわかっていれば十分ですから。:-) C-x C-f ~/.gnus.el RET と タイプすれば (そう、Windows でもスラッシュでいいのです) Emacs は正しいファ イルを開いてくれるでしょう (それが新規ファイルであるために中身が空っぽで あることは、おおいにあり得るでしょう)。しかしちょっと待ってください。 Emacs が選ぶディレクトリーは、きっとあなたの希望通りにはならないので、正 しいやり方でそれを行ないましょう。第一に、例えば c:\myhome のような適当 なディレクトリーを (ディレクトリー名に空白を含めないで) 作ってください。 そして、このディレクトリーを環境変数 HOME に設定しましょう。これ を Win9x か Me で行なうには、`autoexec.bat' ファイルに以下の行を追 加して、再起動してください。
SET HOME=C:\myhome |
NT, 2000 および XP では、システム・オプションを入力するため に Winkey + Pause/Break を叩いて (もしそれが使えなかったら「コント ロールパネル -> システム -> 詳細」を辿って) ください。そこで環境変数を設 定できるでしょう。HOME という名前で値が C:\myhome のものを作ってください。 再起動は不要です。
では、Emacs に C-x C-f ~/.gnus.el RET C-x C-s を指示し て、`~/.gnus.el' ファイルを作りましょう。
ニュースサーバーが認証を要求します。ディスクにユーザー名とパスワードを保 存しておくには、どうすれば良いですか?
次のように、それぞれのサーバーに関する行を含んだ `~/.authinfo' ファ イルを作ってください。
machine news.yourprovider.net login YourUserName password YourPassword |
OS が対応しているならば、そのファイルを他人が読めないようにしておきましょ う。Unix ではシェル上で次のコマンドを実行してください。
chmod 600 ~/.authinfo |
Gnus はうまく起動したようなのですが、グループを講読する方法が見つけられ ません。
そのグループの名前がわかっているのなら、グループバッファーで U name.of.group RET を使ってください (タブ補完を使え、ルーク (訳注: オ ビ=ワン・ケノービの声で))。あるいはグループバッファーで ^ を使いま しょう。これはあなたをサーバーバッファーへ連れて行きます。その場合は、目 的のグループがあるサーバーの上にポイント (カーソル) を置い て RET を叩き、読みたいグループにポイントを移動してから u で そのグループを講読しましょう。
Gnus がすべてのグループを表示してくれません / このサーバーへの投稿が許可 されません。どうしてですか?
プロバイダーのいくつかは匿名での接続を制限していて、認証してからでないと 完全なアクセスを許しません。Gnus に認証のための情報 (authinfo) を送出さ せるには、`~/.authinfo' ファイルの該当するサーバーの行の最後に
force yes |
を追加してください。
複数のサーバーからニュースを取り込みたいのですが、それは可能ですか?
もちろん。変数 gnus-secondary-select-methods
に、もっと多くの記事 の供給元を設定することができます。以下のようなもの を `~/.gnus.el' ファイルに追加してください:
(add-to-list 'gnus-secondary-select-methods '(nntp "news.yourSecondProvider.net")) (add-to-list 'gnus-secondary-select-methods '(nntp "news.yourThirdProvider.net")) |
それから、ローカル・スプール・ファイルからニュースを取り込むことは可能で すか?
問題ありません。それは nnspool
というもう一つの選択方法です。こん なふうに設定してください:
(add-to-list 'gnus-secondary-select-methods '(nnspool "")) |
あるいは NNTP を第一ニュースソースとして使う必要が無いのであれ ば、こうしてください:
(setq gnus-select-method '(nnspool "")) |
これで Gnus は `/usr/spool/news' にあるスプール・ファイルを探します。 何か違うことをやりたいのならば、上記の行を次のようなものに変更してくださ い:
(add-to-list 'gnus-secondary-select-methods '(nnspool "" (nnspool-directory "/usr/local/myspoolddir"))) |
これは、このサーバーだけのために、スプールが存在するディレクトリーを設定 します。さらに記事を投稿するために使うプログラムなどを設定する必要がある かもしれません。そういう場合にどうしたら良いかについては、Gnus のマニュ アルを参照してください。
ニュースを読むのうまくいきましたが、Gnus でメールも読めるようにしたいの です。どうすれば良いですか?
それは少しばかり難しいです。使うことができるメールソースはいっぱいあるし、 メールを格納する方法はたくさんあるし、送信するための方法も様々なので。最 もありふれているのは、次の二つの事例のようなものでしょう:
ときには、これらを併用する必要さえあります。
しかし最初に行なうことは、どの方法でメールを格納するか、Gnus の用語で言 うと、どのバックエンドを使うかを Gnus に指示することです。Gnus は多くの 異なるバックエンドをサポートしますが、最も一般的に使われているの は nnml
です。それは一通のメールを一つのファイルに格納し、そのた め極めて高速です。でも、あなたが使っているファイルシステムがたくさんの小 さなファイルを扱う上で問題があるのならば、一つのグループのすべてのメール を一つのファイルに収める方法を使う必要があるかもしれません。おそらくそう いう場合の選択肢が nnfolder
バックエンドです。
nnml
を使うには、以下を `~/.gnus.el' ファイルに加えてくださ い:
(add-to-list 'gnus-secondary-select-methods '(nnml "")) |
nnfolder
を使いたいのならば、あなたの想像した通り、こうすれば良い でしょう:
(add-to-list 'gnus-secondary-select-methods '(nnfolder "")) |
次に、メールをどこから取得するかを Gnus に伝えなければなりません。それ が POP3 サーバーであるのなら、このように設定してください:
(add-to-list 'mail-sources '(pop :server "pop.YourProvider.net" :user "yourUserName" :password "yourPassword")) |
もしそこにパスワードを書いておくのなら、他人が `~/.gnus.el' ファイ ルを読めないようにしておいてください。メールをローカルマシンの伝統的なス プールファイルから読みたい場合は、以下のように設定してください:
(add-to-list 'mail-sources '(file :path "/path/to/spool/file")) |
もしそれが Postfix, Qmail または (そういうふうに設定されている) fetchmail によって使われる、一通/一ファイル形式の Maildir であるのならば、 こんなふうにしましょう:
(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" :subdirs ("cur" "new"))) |
そして最後に、メールを一つのディレクトリーにある複数のファイルから読むよ うにしたいのであれば (例えば procmail がすでに分割してあるという理由で)、 設定は以下のようになります:
(add-to-list 'mail-sources '(directory :path "/path/to/procmail-dir/" :suffix ".prcml")) |
ここで :suffix
に指定した ".prcml" は、Gnus に拡張子が .prcml の ファイルだけを使うことを指示するためのものです。
さあ、後はどうやってメールを送信するかを Gnus に教えるだけです。メールの 送信に sendmail を使いたければ (または、あなたのシステムの MTA が何であ れ sendmail の役を演じるのならば)、何もしなくても良いのです。でも、も し SMTP サーバーにメールを送りたいのだったら、以下のようなもの が `~/.gnus.el' ファイルに書かれている必要があります:
(setq send-mail-function 'smtpmail-send-it) (setq message-send-mail-function 'smtpmail-send-it) (setq smtpmail-default-smtp-server "smtp.yourProvider.net") |
それから、IMAP でメールを読めるようにするには、どうすれば良い ですか?
Gnus で IMAP を使うには二つの方法があります。最初の は IMAP を POP3 のように使うもので、 Gnus は IMAP サーバーからメールを取得してディスクに格納します。 これをやりたいのなら (本当にそんなことをしたい人はいないでしょうけれど)、 以下の設定を `~/.gnus.el' ファイルに加えてください:
(add-to-list 'mail-sources '(imap :server "mail.mycorp.com" :user "username" :pass "password" :stream network :authentication login :mailbox "INBOX" :fetchflag "\\Seen")) |
:stream
および/または :authentication
の項はいじる必要があ るかもしれません。使うことができる値については Gnus マニュア ル (see 節 `メールソース指示子' in
IMAP をそれが意図された方法で使いたい場合は、違うやり方に従う 必要があります。そうするには選択方法に nnimap
を加え、そこでサー バーに関する情報を与えてください:
(add-to-list 'gnus-secondary-select-methods '(nnimap "Give the baby a name" (nnimap-address "imap.yourProvider.net") (nnimap-port 143) (nnimap-list-pattern "archive.*"))) |
さらに Gnus が正しいやり方を推測できない場合には、サーバーに認証しても らう方法を指定しなければならないでしょう。詳しい情報はマニュア ル (see 節 `IMAP' in
職場で MS Exchange サーバーの一つを使っているのですが、Gnus を使ってそこ からメールを読むことはできますか?
サーバーに IMAP という新しい運動靴を一足はかせてくれるように、 管理人にお願いしてください。そして上記の説明に従って、必要なことを行なっ てください。
POP3 でメールを取得するサーバーで、メールを消さないように Gnus に指示す ることはできますか?
そもそも POP3 はそういうふうに動作することが意図されていません。 それが可能なら、メッセージをサーバー上に残すためには IMAP プロ トコルを使うべきです。それでもなお、そういう機能を必要とする状況があるか もしれませんが、悲しいかな、Gnus 自体はそうするための既設の機能を持って いないのです。
しかしここは Gnus 村ですから、あなたの希望を達成する見込みが無いわけでは ありません。最も簡単な方法は、メールのコピーを取り込んで、それらをディス クに格納してくれる外部プログラムを手に入れることです。そうすれば Gnus は そこから読むことができます。例えば Unix システムでは fetchmail がそれで す。MS Windows では、優れたニュースとメールのサーバーである Hamster を使 うことができます。
別の解は、Gnus が POP3 サーバーからメールを取得する手段を、メー ルをサーバーに残すことができるもので置き換えることでしょう。XEmacs を使っ ているのであれば mail-lib パッケージを手に入れてください。それは拡張され た `pop3.el' を含んでいます。ファイルの中身を見てください。それを使 うように Gnus に指示するやり方と、取得したメールを削除しない方法の説明が 書かれています。GNU Emacs を使っている場合は、同じことを行なうことができ る `epop3.el' を探してください (そのファイルの元の出どころを知って いる人は、私 (訳注: Simon Josefsson さんだと思います、たぶん) にメールを 送ってください)。さらに Gnus に外部プログラム (例えば fetchmail) を使っ てメールを取り寄せるようにさせることもできます。やり方は Gnus マニュア ル (see 節 `メールソース指示子' in
訳注: T-gnus に含まれている `pop3.el' は、XEmacs のやり方をさらに発 展させて、完全に Gnus とともに動作するようになっています (した)。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
なってしまっています。もう一度読むには、どうしたら
質問 4.1 グループに入ると、以前に読んだメッセージが全部なく
良いですか?
ループに入ったときはいつでも見えるように Gnus に指
質問 4.2 大事なメッセージを、すでに読んだことがあっても、グ
示するには、どうすれば良いですか?
質問 4.3 メッセージのヘッダーを見るにはどうしたら良いですか?
ば良いですか?
質問 4.4 整形されていない生のメッセージを見るには、どうすれ
るヘッダーを変更するには、どうしたら良いですか?
質問 4.5 記事バッファーの先頭に Gnus がディフォルトで表示す
テキストのパートを Gnus に表示して欲しいです。どう
質問 4.6 HTML メールを描画するのではなく、それがある場合には
すれば良いですか?
ことはできますか?
質問 4.7 HTML メールを w3 以外のブラウザーを使って描画させる
かがありますか?
質問 4.8 見苦しい体裁のメールをもっと読みやすくするための何
ているメッセージを、自動的に無視する方法はあります
質問 4.9 特定の著者が送信したものや、表題に特定の語が含まれ
か? また、より興味深いものを何らかの方法で強調表示
させることはできますか?
示をさせなくすることはできますか? あるいは、いくつ
質問 4.10 いくつかの (例えばメールの) グループで、スレッド表
かのグループに固有の変数を設定することができますか?
ることはできますか?
質問 4.11 私が書いたメッセージとフォロー記事を、強調表示させ
表示するメッセージの合計の数が非常に大きいのです。
質問 4.12 特にメールのグループで、Gnus がグループバッファーに
これはバグですか?
のですが、どうやったら変更できますか? できるなら三
質問 4.13 概略バッファーと記事バッファーの配置が気に入らない
面で表示させたいです。
調整するには、どうすれば良いですか?
質問 4.14 概略バッファーを見せるやり方が好きではありません。
は、どうしたら良いですか?
質問 4.15 やってきたメールをいろいろなグループに振り分けるに
グループに入ると、以前に読んだメッセージが全部なくなってしまっています。 もう一度読むには、どうしたら良いですか?
グループバッファーにおいて、そのグループの上にポイントが置かれている状態 で RET を使うと、未読と可視記事の印 (ticked) が付いたメッセージだ けが現れます。存在するすべてのメッセージが表示されるようにするには、代わ りに C-u RET を使ってください。もし最新の、例えば 300通だけが所望 ならば、C-u 300 RET を使いましょう。
スレッド表示を有効にしていると、未読のメッセージだけを表示するのはじれっ たいかもしれません。スレッドがちぎれてしまうことを防止するのに十分な量の 古い記事を取り込むには、以下の設定を追加すれば良いでしょう:
(setq gnus-fetch-old-headers 'some) |
some
を t
に替えると、すべての記事を表示するようになりま す (警告: どちらの設定もグループに入ったときに取り込むデータ量を増加させ、 グループに入る処理を遅くしてしまいます)。
すでに Gnus 5.10 を使っているならば、最後の n 通のメッセージを取り 込むために、概略バッファーで /o N 命令を使うことができます。この機 能は 5.8.8 にはありません。
すべての古いメッセージは要らないけれども、今まさに読んでいるメッセージの 親を辿りたいならば ^ 命令を使ってください。今まさに読んでいるメッ セージが属しているスレッドのすべての記事を表示したい場合は、 `A T' 命令があなたの望むものです。
大事なメッセージを、すでに読んだことがあっても、グループに入ったときはい つでも見えるように Gnus に指示するには、どうすれば良いですか?
大事なメッセージには可視記事の印 (ticked) を付けることができます。それに は、概略バッファーでポイントがその記事を指しているときに u を叩い てください。可視記事の印を消す命令は d (これは可視記事の印を消して から未読の印を付けます) または M c (そのメッセージに付いているすべ ての印を消します) です。
メッセージのヘッダーを見るにはどうしたら良いですか?
t 命令を使うとすべてのヘッダーを表示し、もう一度使うとそれらを隠し ます。
整形されていない生のメッセージを見るには、どうすれば良いですか?
C-u g 命令を使うと生のメッセージを表示し、g で通常の表示に戻 ります。
記事バッファーの先頭に Gnus がディフォルトで表示するヘッダーを変更するに は、どうしたら良いですか?
変数 gnus-visible-headers
がどのヘッダーを表示するかを制御します。 その値は正規表現で、それに合致するヘッダー行が表示されます。したがって、 著者、表題、日付、そしてもし存在する場合は Followup-To と MUA / NUA を表 示したい場合には、`~/.gnus.el' ファイルで以下の設定を行なってくださ い:
(setq gnus-visible-headers '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To" "^User-Agent" "^X-Newsreader" "^X-Mailer")) |
HTML メールを描画するのではなく、テキストのパートがある場合に は、そちらの方を Gnus に表示して欲しいです。どうすれば良いですか?
`~/.gnus.el' ファイルで以下の設定を行なってください:
(add-to-list 'mm-discouraged-alternatives "text/html") (add-to-list 'mm-discouraged-alternatives "text/richtext") |
HTML のパートと同じ内容のテキストのパートが無い場合でさえ も HTML のパートを描画して欲しくないのであれば、以下の設定を追 加してください:
(setq mm-automatic-display (remove "text/html" mm-automatic-display)) |
HTML メールを w3 以外のブラウザーを使って描画させることはでき ますか?
Gnus 5.10 またはより新しいものを使う場合だけですが、w3, w3m, links, lynx および html2text の中から選ぶことができ、どれを使うかは変 数 mm-text-html-renderer
で指定することができます。したがっ て links で HTML メールを描画したいときは、こうしてください:
(setq mm-text-html-renderer 'links) |
見苦しい体裁のメールをもっと読みやすくするための何かがありますか?
Gnus は入ってきたメールを「洗濯」するために複数の関数を提供します。それ らはメニューの Article->Washing 項目を辿ることによって見つけることができ るでしょう。最も興味深いものを挙げてみましょう:
他の見苦しくなくさせる機能については W Y C-h を使うかメニューを眺 めてください。Outlook Deuglify は Gnus 5.10 以上で使うことができます。
特定の著者が送信したものや、表題に特定の語が含まれているメッセージを、自 動的に無視する方法はありますか? また、より興味深いものを何らかの方法で 強調表示させることはできますか?
あなたに必要なのはスコア付けです。スコア付けと言うのは、それぞれのメッセー ジに整数の値を割り付けるための規則を定義することです。値に基づいて概略バッ ファーでメッセージを強調表示したり (それが +2000 といった高い値だったら)、 自動的に既読にしたり (その値が例えば -800 のような低い値だったら)、ある いは他のいくつかの作用を行なったりします。
メッセージにスコアの値を割り付ける規則を設定するための、基本的な三つのや り方があります。
すると Gnus は、スコアを下げる基準をどれにすれば良いかを尋ねてくるでしょ う。? を二回叩くと、すべての候補を見ることができますが、ここで選択 すべきなのは著者 (From ヘッダー) を意味する a です。
次に Gnus はどの種類の合致を使うべきかを尋ねてくるので、厳密な合致のため の e を叩くか、あるいは文字の一部への合致を求める s を叩いて から、後ですべてを削除してください。どんな電子メールアドレスであっても、 それを持つすべての著者のスコアを下げるために、その名前が使われます。
さらに、その規則をいつ適用するべきか、またどれくらいの時間続けるべきか を Gnus に伝える必要があります。例えば p では、その規則を今すぐ適 用して、それを永久に持続させます。
スコアを下げるのではなくて上げたいのであれば、L の代わり に I を使ってください。
(("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s)) ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s))) |
これは私が書いたメッセージのスコアに 999 を加えて、それに対する (たぶん 間接的な) 回答のメッセージのスコアに 500 を加えるでしょう。もちろん分別 のある人は誰も、こんなことはしないでしょうが。:-)
(setq gnus-use-adaptive-scoring t) |
いくつかの (例えばメールの) グループで、スレッド表示をさせなくすることは できますか? あるいは、いくつかのグループに固有の変数を設定することがで きますか?
グループバッファーにいるときに、そのグループにポイントを移動してか ら G c を叩いてください。すると、そのグループのためのオプションを 設定することができるバッファーが開きます。そして、そのバッファーのおしま いの方で、そのグループでローカルに変数を設定するための項目を見つけること ができるでしょう。スレッド表示をさせなくするには、変数名とし て gnus-show-threads
を、値として nil
を入力してください。 作業を終えたら、そのバッファーの最初の方にある [done] ボタンを叩きましょ う。
私が書いたメッセージとフォロー記事を、強調表示させることはできますか?
「できますか?」なんて質問はやめてください。Gnus 村では答えはいつ も yes なのですから。:-) これは三段階の作業になります。まず、それらの投 稿のためのフェース (概略行がどんなふうに見えるかの仕様) を作りましょう。 続いて、それらにいくばくかの特別なスコアを与えましょう。最後に、その新し いフェースを使うように Gnus に指示しましょう。
特にメールのグループで、Gnus がグループバッファーに表示するメッセージの 合計の数が非常に大きいのです。これはバグですか?
いいえ、これは Gnus の設計上の問題で、これを直すには Gnus のバックエンド の主要な部分を実装し直さなければなりません。Gnus は最大の記事番号から最 小の記事番号を減算したものが合計の記事数であると解釈します。これ は Usenet のグループでは OK なのですが、メールのグループでたくさんのメッ セージを消去したり移動すると計算に失敗します。この病を治療するに は C-u RET でそのグループに入り (この命令は Gnus にすべてのメッセー ジを持って来させます)、M P b ですべてのメッセージに印を付けてから、 B m name.of.group でメッセージを全部、それらが元あったグループに移 動してください。この処理によってそれらは新しいメッセージ番号を持たせられ て、合計の記事数は再び正しくなるでしょう (またもやそれらを消したり別のグ ループに移動するまでは)。
概略バッファーと記事バッファーの配置が気に入らないのですが、どうやったら 変更できますか? できるなら三面で表示させたいです。
gnus-add-configuration
関数を呼ぶことによって、ウィンドウの配置を 制御することができます。構文はいささか複雑ですが、マニュアルで非常に良く 説明されています (see 節 `ウィンドウの配置' in
概略 25% 記事 75% というディフォルトの割合を、概略 35% 記事 65% の割合に 変更します (記事のための 1.0 は、残った空き地を取るという意味です):
(gnus-add-configuration '(article (vertical 1.0 (summary .35 point) (article 1.0)))) |
グループバッファーが左、概略バッファーが右上、記事バッファーが右下という 三面配置です:
(gnus-add-configuration '(article (horizontal 1.0 (vertical 25 (group 1.0)) (vertical 1.0 (summary 0.25 point) (article 1.0))))) (gnus-add-configuration '(summary (horizontal 1.0 (vertical 25 (group 1.0)) (vertical 1.0 (summary 1.0 point))))) |
概略バッファーを見せるやり方が好きではありません。調整するには、どうすれ ば良いですか?
変数 gnus-summary-line-format
をいじくり回す必要があります。その 値は著者、日付、表題などのようなものを表すシンボルの文字列です。使うこと ができる仕様のリストは see 節 `概略バッファーの行' in
5.10 から、Gnus は非常にみごとな新しい書法仕様変数を提供しています。例え ば %B はスレッド木を描き、また %&user-date は、どう表示するかが記事が発 信されてからの経過時間に依存している日付を表示します。これらの両方を使っ ている例です:
(setq gnus-summary-line-format ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n") |
結果はこんなふうになります:
:O Re: [Richard Stallman] rfc2047.el | 13 |Lars Magne Ingebrigt |Sat 23:06 :O Re: Revival of the ding-patches list | 13 |Lars Magne Ingebrigt |Sat 23:12 :R > Re: Find correct list of articles for a gro| 25 |Lars Magne Ingebrigt |Sat 23:16 :O \-> ... | 21 |Kai Grossjohann | 0:01 :R > Re: Cry for help: deuglify.el - moving stuf| 28 |Lars Magne Ingebrigt |Sat 23:34 :O \-> ... | 115 |Raymond Scholz | 1:24 :O \-> ... | 19 |Lars Magne Ingebrigt |15:33 :O Slow mailing list | 13 |Lars Magne Ingebrigt |Sat 23:49 :O Re: `@' mark not documented | 13 |Lars Magne Ingebrigt |Sat 23:50 :R > Re: Gnus still doesn't count messages prope| 23 |Lars Magne Ingebrigt |Sat 23:57 :O \-> ... | 18 |Kai Grossjohann | 0:35 :O \-> ... | 13 |Lars Magne Ingebrigt | 0:56 |
やってきたメールをいろいろなグループに振り分けるには、どうしたら良いです か?
Gnus はメールを分割するための二つの手段として、やさし い nnmail-split-methods
と、もっと強力な特級メール分割の機能を提 供します。ここでは最初のものだけについて述べますが、後者についてはマニュ アル (see 節 `特級メール分割' in
nnmail-split-methods
の値はリストで、それぞれの要素は分割の規則を 表すリストです。それぞれの規則は「合致する記事が行くべきグループ」と「合 致すべき正規表現」の形式を持っていて、最初に合致した規則が勝ちます。最後 の規則は常に汎用の規則 (正規表現 `.*') でなければなりません。それは 他のどんな規則にも合致しない記事が行くべき場所を示します。もしまだフォル ダーが無かったならば、それは記事がそこに着地するとすぐに作られるでしょう。 ディフォルトでは、メールは規則に合致するすべてのグループに送られます。そ れを望まないならば (たぶん望まないでしょう)、以下のもの を `~/.gnus.el' ファイルに入れてください:
(setq nnmail-crosspost nil) |
たった一つの例は千の言葉を並べるよりも勝ります。そこで、ここでは私 の nnmail-split-methods
を紹介しましょう。私は、私が講読している いくつかのメーリングリストから来るか、私を直接に目指して来たすべてのメー ルを濾過器に通すので、私が特別のグループの複写を送ることと、ディフォルト のグループは `spam' であることに注意してください。これらの規則は、 私宛てに届いた spam のおよそ 80% を殺してくれます (電子メールアドレス は spammers がそれらを使用するのを防ぐために変更されます)。
(setq nnmail-split-methods '(("duplicates" "^Gnus-Warning:.*duplicate") ("XEmacs-NT" "^\\(To:\\|CC:\\).*[email protected].*") ("Gnus-Tut" "^\\(To:\\|CC:\\).*[email protected].*") ("tcsh" "^\\(To:\\|CC:\\).*[email protected].*") ("BAfH" "^\\(To:\\|CC:\\).*localpart@.*uni-muenchen.invalid.*") ("Hamster-src" "^\\(CC:\\|To:\\).*hamster-sourcen@yahoogroups.\\(de\\|com\\).*") ("Tagesschau" "^From: tagesschau $") ("Replies" "^\\(CC:\\|To:\\).*[email protected].*") ("EK" "^From:.*\\([email protected]\\|[email protected]\\).*") ("Spam" "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*") ("Spam" "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*") ("Spam" "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*") ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)") ("Spam" "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)") ("Spam" "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*") ("Spam" "^Delivered-To: GMX delivery to [email protected]$") ("Spam" "^Received: from link2buy.com") ("Spam" "^CC: .*[email protected]") ("Spam" "^X-Mailer-Version: 1.50 BETA") ("Uni" "^\\(CC:\\|To:\\).*[email protected].*") ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|[email protected]\\|[email protected]\\)") ("Spam" ""))) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ている必要がある基本的なコマンドは何ですか?
質問 5.1 メールを送信したりニュース記事を投稿するために知っ
すれば良いですか?
質問 5.2 メールを作成するとき、自動的に行を折り返すにはどう
成したり、定型の署名 (signature) を自動的に挿入する
質問 5.3 From, Organization, Reply-To などのヘッダーを自動生
には、どうしたら良いですか?
を自動挿入するには、どうすれば良いですか?
質問 5.4 投稿するグループによって異なる From ヘッダーや署名
場でチェックしてくれるものがあれば良いのですが。
質問 5.5 スペルチェッカーはありますか? できれば、書いたその
の) を切り替えることはできますか?
質問 5.6 投稿するグループに基づいて、辞書 (スペルチェッカー
にするための、アドレス帳のようなものはありますか?
質問 5.7 全員の電子メールアドレスを思い出さなくても済むよう
します。あれは何ですか? また、どうしたら私も投稿す
質問 5.8 記事バッファーの上の方で、ときどき小さな画像を目に
るときに付けることができますか?
`r' を打ってしまいます。ニュースグループなのにもか
質問 5.9 ときどきニュースグループで、`f' の代わりにうっかり
かわらずメールで返信しようとしたときに、Gnus に警告
してもらうことはできますか?
どうしたら良いですか?
質問 5.10 Gnus が sender ヘッダーを生成しないようにするには、
きたいのですが、どうすれば良いですか?
質問 5.11 送信したメールやニュースの控えをローカルに残してお
として生かしたままにしておく代わりに kill するには
質問 5.12 送信に成功した後でそのバッファーを "Sent mail to..."
どうしたら良いですか?
なぜですか? また、どうやって直したら良いですか?
質問 5.13 Message-ID が不正だと言われてしまうのですが、それは
メールを送信したりニュース記事を投稿するために知っている必要がある基本的 なコマンドは何ですか?
新しいメールの作成を始めるには、グループバッファーか概略バッファーのどち らかで m を叩いてください。ニュース記事を投稿する場合には、グルー プバッファーで a を叩いた後に手で Newsgroups ヘッダーに書き込むか、 投稿するグループの概略バッファーで a を叩いてください。
メールで返信する場合、元の記事を引用しないか後で手作業で引用するつもりな らば r を、引用文を最初から取り込んでしまうのならば R を使っ てください。ニュースグループでフォロー記事を投稿する場合であれ ば f か F (r と R の関係に似ています) を使いましょ う。
新たにヘッダーを挿入するならば `--text follows this line--' の上に 書いて、本文はその下に書いてください。書き上がったメッセージを送信するコ マンドは C-c C-c で、後で仕上げるために `drafts' グループに保 存するためのコマンドは C-c C-d です。後者は D e で再び編集す ることができます。
メールを作成するとき、自動的に行を折り返すにはどうすれば良いですか?
No Gnus の場合は自動で行を折り返す機能がディフォルトで ON になります。変 数 message-fill-column
を参照してください。
他の Gnus の版では、こんなものを `~/.gnus.el' ファイルに入れてくだ さい:
(unless (boundp 'message-fill-column) (add-hook 'message-mode-hook (lambda () (setq fill-column 72) (turn-on-auto-fill)))) |
いつもの通りに M-q を使うことによって、段落を再整形することができ ます。
From, Organization, Reply-To などのヘッダーを自動生成したり、定型の署 名 (signature) を自動的に挿入するには、どうしたら良いですか?
他のやり方もありますが、これのためには投稿様式 (posting styles) を使うべ きです (理由は後で書きます)。この例ならば、その構文が明確にわかるはずで す:
(setq gnus-posting-styles '((".*" (name "Frank Schmitt") (address "[email protected]") (organization "Hamme net, kren mer och nimmi") (signature-file "~/.signature") ("X-SampleHeader" "foobar") (eval (setq some-variable "Foo bar"))))) |
".*"
という設定はディフォルトのものです (質問 5.4 参照)。そ れ以降のリストの第一要素に使える値 (属性名) は signature
, signature-file
, organization
, address
, name
または body
です。属性名は文字列でも構いません。その場合、属性名 はヘッダー名として使われ、その値は記事のヘッダーに挿入されます。ただし値 が nil
だったら、その名前のヘッダーは削除されます。
(eval (foo bar))
の形式を使うことも可能で、その場合 bar
を 引数に与えられて関数 foo
が評価され、結果は捨てられます。
投稿するグループによって異なる From ヘッダーや署名を自動挿入するには、ど うすれば良いですか?
これこそが投稿様式 (posting styles) の強みです。前の回 答 (see 節 質問 5.3) では、すべてのグループのためのディフォルトを設定す るために ".*"
を使いました。これに "^gmane"
のような正規表 現を使うと、それ以降の設定を gmane ニュースグループの階層で投稿する記事 だけに適用させることができます。代わりに ".*binaries"
を使うと、 名前などが `binary' という文字列を含んでいるグループに投稿する記事 だけに、それらの設定が適用されます。
正規表現の代わりに関数を指定することもでき、それが評価されて真を返すとき だけ、それに対応する設定が有効になります。これの興味深い二つの候補は、 現在のグループがニュースグループだったら t
を返 す message-news-p
と、それと対になる message-mail-p
です。
すべての合致する様式が適用されることに注意してください。以下を例にすれば、 `gmane.mail.spam.spamassassin.general' に投稿すると ".*"
で 始まる設定が適用され、message-news-p
以下の設定も適用され、 "^gmane"
で始まる設定、それ に "^gmane\\.mail\\.spam\\.spamassassin\\.general$"
以下の設定の すべてが適用されるということです。このため、一般的な設定は先頭に置き、特 定の条件を持つものは下の方に置くのが良いでしょう。
(setq gnus-posting-styles '((".*" ;;default (name "Frank Schmitt") (organization "Hamme net, kren mer och nimmi") (signature-file "~/.signature")) ((message-news-p) ;;Usenet news? (address "[email protected]") (reply-to "[email protected]")) ((message-mail-p) ;;mail? (address "[email protected]")) ("^gmane" ;;this is mail, too in fact (address "[email protected]") (reply-to nil)) ("^gmane\\.mail\\.spam\\.spamassassin\\.general$" (eval (set (make-local-variable 'message-sendmail-envelope-from) "[email protected]"))))) |
スペルチェッカーはありますか? できれば、書いたその場でチェックしてくれ るものがあれば良いのですが。
Emacs では単語の綴りをチェックするために `ispell.el' を使うことがで きます。したがって最初に行なうのは、外部プログラ ム ispell または同 aspell を適当 な path にインストールしておくことです。次 に ispell.el と、書いたその場でスペルチェックをしてくれ る flyspell.el を用意してください。`ispell.el' は Emacs とともに配布 されているだけではなく、XEmacs パッケージシステムによっても手に入れるこ とができます。`flyspell.el' も Emacs に同梱されているのとともに、パッ ケージシステムを介して入手することができ る XEmacs の text-modes
パッケージの一部です。したがって、それら を個別にインストールする必要は無いはずです。
`ispell.el' は外部プログラム `ispell' を使うことを想定していま す。`aspell' を選ぶなら、Emacs の設定ファイルで以下の宣言を行なって ください (訳注: Emacs 22 以上では、`ispell.el' がそれらを自動判別し ます):
(setq ispell-program-name "aspell") |
送出するメッセージがスペルチェックされるようにしたいなら以下の行を
(add-hook 'message-send-hook 'ispell-message) |
単語を書いたその場でスペルチェックすることを好むなら次の行を
(add-hook 'message-mode-hook (lambda () (flyspell-mode 1))) |
`~/.gnus.el' ファイルに追加してください。
投稿するグループに基づいて、辞書 (スペルチェッカーの) を切り替えることは できますか?
はい、できます。こんなものを `~/.gnus.el' ファイルに入れてください:
(add-hook 'gnus-select-group-hook (lambda () (cond ((string-match "^de\\." (gnus-group-real-name gnus-newsgroup-name)) (ispell-change-dictionary "deutsch8")) (t (ispell-change-dictionary "english"))))) |
"^de\\."
と "deutsch8"
は、必要に応じて変更してください。
全員の電子メールアドレスを思い出さなくても済むようにするための、アドレス 帳のようなものはありますか?
そのための非常に基本的な解は「メールの別名」(mail aliases) です。以下の ように単純な別名の構文を使って、`~/.mailrc' ファイルにメールアドレ スを登録しておくことができます:
alias al "Al " |
そうしておいて、メッセージバッファーの To: または Cc: 行で、別名に続いて スペースか句読点をタイプすることによって、Gnus に完全なアドレスを挿入し てもらうことができます。詳細は Message マニュアル (see 節 `メールの別名' in
でも、あなたが本当に使いたいのは BBDB (the Insidious Big Brother Database) でしょう。XEmacs のパッケージシステムを使うか、 bbdb のホームページ から入手してく ださい。そして Gnus で BBDB を有効にするために、以下のもの を `~/.gnus.el' ファイルに書き込んでください:
(require 'bbdb) (bbdb-initialize 'gnus 'message) |
さて、いくつかの一般的な BBDB の設定が必要かもしれません。それら は `~/.emacs' ファイルに置きましょう。例です:
(require 'bbdb) ;; 北アメリカに住んでいるのでなければ、以下によって電話番号の ;; チェックをやめさせるべきです。 (setq bbdb-north-american-phone-numbers-p nil) ;; あなたの電子メールアドレスを BBDB に教えましょう。 (setq bbdb-user-mail-names (regexp-opt '("[email protected]" "[email protected]"))) ;; メールアドレスを補完するときに、候補をエンドレスで出します。 ;; cycling while completing email addresses (setq bbdb-complete-name-allow-cycling t) ;; BBDB のバッファーをポップアップさせません。 (setq bbdb-use-pop-up nil) |
これで BBDB を使う準備ができたはずです。M-x bbdb RET RET で、すべ ての登録した項目を表示する BBDB のバッファーを開いてください。新たに登録 するには c、検索には b、そして登録してある項目に新しいフィー ルドを加えるには C-o を使いましょう。送信者を BBDB に登録するには、 概略バッファーのその記事の場所で単に : を叩くだけで、あなたの仕事 は終りです。一方、新規にメールを作成しているときに TAB を叩くこと によって、順繰りに現れる候補の中から受取人を選ぶことができます。
記事バッファーの上の方で、ときどき小さな画像を目にします。あれは何ですか? また、どうしたら私も投稿するときに付けることができますか?
あの画像は X-Face というものです。ヘッダー行で 48×48 画素の白黒画像がエ ンコードされています。それを送信する記事に含めたいなら、何かの画像 を X-Face に変換する必要があります。そうするには、何らかの画像を加工する ためのプログラム (例えば Gimp) に点火して、記事に含めたい画像のファイル を開き、必要な部分を切り抜いて、色の深度を 1-bit まで減らし、48×48 の大 きさに縮小または拡大して、bitmap としてファイルに保存してください。次 に `compface' パッケージ を このサイト から入手して、 以下を実行することによって実際の X-Face を作りましょう:
cat file.xbm | xbm2ikon | compface > file.face cat file.face | sed 's/\\/\\\\/g;s/\"/\\\"/g;' > file.face.quoted |
`compface' を使うことができなくても、オンラインの X-Face 変換器 が http://www.dairiki.org/xface/ にあります。MS Windows を使って いるのならば、http://www.xs4all.nl/~walterln/winface/ か ら `WinFace' プログラムを取って来て使うこともできます。後は、送信す る記事に X-Face を含めてくれるように Gnus に指示するだけです。それに は `~/.gnus.el' ファイルに以下のようなものを入れてください:
(setq message-default-headers (with-temp-buffer (insert "X-Face: ") (insert-file-contents "~/.xface") (buffer-string))) |
ただし Gnus 5.10 を使っているのであれば、単に次の項を
(x-face-file "~/.xface") |
gnus-posting-styles
に加えるだけで済みます。
ときどきニュースグループで、f の代わりにうっかり r を打って しまいます。ニュースグループなのにもかかわらずメールで返信しようとしたと きに、Gnus に警告してもらうことはできますか?
もう Gnus 5.10 を使っているのであれば、これを `~/.gnus.el' ファイル に入れてください:
(setq gnus-confirm-mail-reply-to-news t) |
まだ 5.8.8 や 5.9 を使っているのなら、代わりにこれをどうぞ:
(eval-after-load "gnus-msg" '(unless (boundp 'gnus-confirm-mail-reply-to-news) (defadvice gnus-summary-reply (around reply-in-news activate) "Request confirmation when replying to news." (interactive) (when (or (not (gnus-news-group-p gnus-newsgroup-name)) (y-or-n-p "Really reply by mail to article author? ")) ad-do-it)))) |
Gnus が sender ヘッダーを生成しないようにするには、どうしたら良いですか?
Gnus 5.10 はディフォルトで sender ヘッダーを作らないのですけれどね。まだ 古い Gnus を使っているのなら、`~/.gnus.el' ファイルでこれを試してく ださい:
(add-to-list 'message-syntax-checks '(sender . disabled)) |
送信したメールやニュースの控えをローカルに残しておきたいのですが、どうす れば良いですか?
それを行なうためには変数 gnus-message-archive-group
を設定しなけ ればなりません。それには、控えを保存しておくグループの名前を与える文字列 を設定することができます。あるいは以下の例のように、評価されるとグループ 名を返す関数 (訳注: と言うよりは Lisp の式) を設定することもできます。
(setq gnus-message-archive-group '((if (message-news-p) "nnml:Send-News" "nnml:Send-Mail"))) |
送信に成功した後でそのバッファーを "Sent mail to..." として生かしたまま にしておく代わりに kill するにはどうしたら良いですか?
`~/.gnus.el' ファイルにこれを加えてください:
(setq message-kill-buffer-on-exit t) |
Message-ID が不正だと言われてしまうのですが、それはなぜですか? また、ど うやって直したら良いですか?
Message-ID は、送信したメッセージが、それがそれであることを確認するため のものです。それが、あるメッセージにとって固有であるようにするために、 Gnus は `@' の後に置くマシン名を知る必要があります。Gnus が走って いるマシンの名前が適切ではないならば (ほとんどの個人のマシンが該当するで しょう)、Gnus が使う名前を以下のように `~/.gnus.el' ファイルで設定 してください:
(setq message-user-fqdn "yourmachine.yourdomain.tld") |
Gnus 5.9 かそれ以前のものを使っている場合は、代わりにこれを使ってくださ い (新しい版でも動作します):
(let ((fqdn "yourmachine.yourdomain.tld")) ;; <-- 変更してね! (if (boundp 'message-user-fqdn) (setq message-user-fqdn fqdn) (gnus-message 1 "Redefining `message-make-fqdn'.") (defun message-make-fqdn () "Return user's fully qualified domain name." fqdn))) |
"yourmachine.yourdomain.tld"
に何を入れるかを決めることができない ならば、複数の選択肢があります。あなた が `yourUserName.userfqdn.provider.net' のようなものを使っても良い かどうかをプロバイダーに尋ねてみても良いし、個人でドメイ ン `yourdomain.tld' を保有している場合 は `somethingUnique.yourdomain.tld' のようなものを使うことができま す。あるいは、ユーザーに無料で FQDN を提供してくれるサービスに登録するの も良いでしょう。
最後に、Gnus にニュース記事では Message-ID をまったく作らせない (そして その仕事はサーバーに任せる) ことができます。以下の設定を使ってください:
(setq message-required-news-headers (remove' Message-ID message-required-news-headers)) |
さらに次の設定によって、メールでも Gnus に Message-ID を作らせないことは 可能です:
(setq message-required-mail-headers (remove' Message-ID message-required-mail-headers)) |
しかしながら、メールサーバーのあるものは適切な Message-ID を作ってくれな いので、自分でメールを送信して Message-ID を眺めてみることによって、あな たのメールサーバーが正しく振る舞うかどうかをテストしてください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
入させるにはどうしたら良いですか?
質問 6.1 Gnus を使っていなかったときの古いメールを、Gnus に編
質問 6.2 興味を持った記事を保存するにはどうすれば良いですか?
質問 6.3 指定したメッセージを探すにはどうしたら良いですか?
ですか?
質問 6.4 要らなくなった古いメールを削除するにはどうすれば良い
ですが (少なくともいくつかのグループで)、どうしたら
質問 6.5 読み終わったすべてのメッセージを期限切れ消去したいの
良いですか?
に移動させたいのですが。
質問 6.6 期限が来たメールを削除するのではなくて、他のグループ
Gnus を使っていなかったときの古いメールを、Gnus に編入させるにはどうした ら良いですか?
最も楽な方法は、古いメールプログラムにメッセージを `mbox' 形式にま とめてもらうことです。ほとんどの Unix のメイラーはそれをすることができ、 あなたが MS Windows の世界の出身であって も http://mbx2mbox.sourceforge.net/ で、そのための道具を見つける ことができるでしょう。
では、この `mbox' ファイルを Gnus に編入させましょう。それにはグルー プバッファーで G f /path/file.mbox RET を実行して、`mbox' ファ イルを扱うための nndoc
グループを作ってください。そうすれば、あな たのメールに読み出し専用でアクセスできるようになります。そのメッセージを 通常の Gnus のメールグループの階層に編入させたいならば、たった今作っ た nndoc
グループに C-u RET 命令で入って (つまりすべてのメッ セージが読めるようにしておいて)、すべてのメッセージに M P b で印を 付けてから、それらをお望みのグループに B c name.of.group RET でコ ピーするか、または nnmail-split-methods
を使ってそれらを分割 (再 スプール) するために B r を使ってください。
興味を持った記事を保存するにはどうすれば良いですか?
例えば `gnu.emacs.gnus' で興味深い記事に出くわして、それを保存しよ うと思ったときには、複数の解があります。第一の最もやさしい方法は、 O f 命令を使ってそれをファイルに保存することです。でもそれは、 Gnus から保存されたメッセージをより直接にアクセスする手段としては、とて も便利だとは言えないのではないでしょうか? それに同意してくれるのならば、 Frank Haun が書いてくれたこのコードの切れ端 を `~/.gnus.el' ファイルに入れてみてください:
(defun my-archive-article (&optional n) "一個以上の記事を、対応する `nnml:' グループにコピーします。 例えば `gnus.ding' の記事は `nnml:1.gnus.ding' グループに行き、 `nnml:List-gnus.ding' の記事は `nnml:1.List-gnus-ding' に行きます。 一個以上の記事を保存するには、概略バッファーでプロセス/接頭引数の 習慣を使ってください。" (interactive "P") (let ((archive-name (format "nnml:1.%s" (mm-replace-in-string gnus-newsgroup-name "^.*:" "")))) (gnus-summary-copy-article n archive-name))) |
訳注: See 節 `プロセス/接頭引数' in
これにより、概略バッファーで M-x my-archive-article を実行すれば、 指定した記事を nnml
グループに保存することができます。
もちろん、以下の設定によってキャッシュを常に有効にすることもできます:
(setq gnus-use-cache t) |
これによって、維持したい記事には可視 (ticked) か保留 (dormant) の印を付 けるだけで済むようになります。また、既読 (read) の印を付けることによって、 それらの記事はキャッシュから削除されます。
指定したメッセージを探すにはどうしたら良いですか?
これにも複数の方法があります。Usenet グループに投稿されたものについては、 おそらく に尋ねるのが 最も楽な解決方法です。そこで見つかったならば、Google に生の記事を表示し てもらって Message-ID を探し、概略バッファーで M-^ [email protected] RET を実行してください。さらに Gnus 5.10 以降で は `groups.google.com' へのインターフェースがあるので、グループバッ ファーで G W を使うこともできます。
メールとニュースの両方のグループで動作するもう一つの方法は、探しているメッ セージが存在するグループに入って、Emacs の標準の探索コマンドであ る C-s を使うことです。それは壊れたスレッドにある記事を探すために も十分に賢いものです。本文の中で探したいのならば、代わりに M-s を 試してください。さらに付け加えると、これも役に立 つ gnus-summary-limit-to
-* コマンド群があります。
もちろんローカルに保存されているメールを `grep' で探すこともできま すが、大きなアーカイブが相手だと遅いし、見つかったメールを Gnus で表示す るわけではないので不便でもあります。そこで nnir
の出番がやってき ました。nnir
は `swish-e', `swish++' および他の検索エン ジンへのフロントエンドです。それらの検索エンジンの一つを使ってメールに索 引を付けておけば、nnir
の助けを借りることによって、索引が付けられ たメールを探して、検索の基準に合致するすべてのメールを含む一時的なグルー プを作ることができます。これがクールに聞こえるなら、 ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/ また は ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/ か ら `nnir.el' を持って来ましょう。使い方の説明は、そのファイルの始め の方にあります。
要らなくなった古いメールを削除するにはどうすれば良いですか?
もはや要らなくなったメールにポイントを置いて # で印を付けてから、 それらを B DEL で永久に消してしまうことは、もちろんできます。さら に、それらを実際に消してしまう代わりに B m nnml:trash-bin を使って ジャンク・グループ (それは時々消さなければなりません) に送ることもできる のですが、両方とも Gnus が意図するやり方ではありません。
Gnus では、ニュースサーバーでニュース記事が期限切れ消去されるように、メー ルも消します。そうするためには、概略バッファーのそのメールの上 で E を叩くことによって、そのメールが期限切れ消去可能であること を (「このメールはもう要らないよ」と) Gnus に伝えれば良いのです。すると、 そのグループを抜け出たときに、Gnus は以前に印が付けられたすべてのメッセー ジを検査して、十分に古くなった (ディフォルトでは一週間より古くなった) メー ルを消去します。
読み終わったすべてのメッセージを期限切れ消去したいのですが (少なくともい くつかのグループで)、どうしたら良いですか?
読み終わったすべてのメッセージが期限切れ消去されるようにしたいなら (例え ばオンラインのアーカイブが別に存在しているメーリングリストで)、 auto-expire
と total-expire
という二つの選択肢があります。 auto-expire
というのは、印が付いていないけれども読むために選択さ れたことがあるすべての記事に期限切れ消去可能の印が付けられることで、メッ セージを読むたびに Gnus が E を叩いてくれるようなものです。 total-expire
は少し異なるやり方に従っていて、既読の印が付けられた すべての記事が期限切れ消去可能になります。
auto-expire
を有効にするには、そのグループのグループパラメーター に auto-expire
を含めてください (グループバッファーでグループパラ メーターを変更するグループの上にポイントを置いて G c を叩きます)。 total-expire
の方は、グループパラメーター に total-expire
を加えてください。
どちらの手段を選ぶかは、単に好みの問題です。auto-expire
は速いの ですが、適応スコア付けと共存できないので、この機能を使いたい場合 は total-expire
を使わなければなりません。
total-expire
か auto-expire
が設定されているグループで、あ るメッセージを期限切れ消去の対象から外したい場合には、u で可 視 (ticked) の印を付けるか ? で保留 (dormant) の印を付けてください。 auto-expire
を使っている場合は、さらに d で既読の印を付ける ことができます。
期限が来たメールを削除するのではなくて、他のグループに移動させたいのです が。
`~/.gnus.el' ファイルに、このようなものを書き込んでください:
(setq nnmail-expiry-target "nnml:expired") |
(nnmail-expiry-target
にグループによって異なる値を設定したい場合 には、質問「いくつかの (例えばメールの) グループで、スレッド表示をさせな くすることはできますか? あるいは、いくつかのグループに固有の変数を設定 することができますか?」(see 節 質問 4.10) を参照してください。)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
る時間を最小限にできますか?
質問 7.1 ネットに常時接続していないのですが、どうしたら接続す
質問 7.2 ならば、それのエージェントに関係するものは何ですか?
良いですか?
質問 7.3 記事の本文もディスクに格納したいのですが、どうすれば
させないようにするには、どうしたら良いですか?
質問 7.4 オフラインのときに Gnus にメールやニュース記事を送信
ネットに常時接続していないのですが、どうしたら接続する時間を最小限にでき ますか?
二つのやり方があります。一つは Gnus エージェントを使うこ と (see 節 質問 7.2) で、もう一方はニュース記事とメールをローカルディス クに取り込むプログラムをインストールして、Gnus にそれらをローカルマシン から読んでもらう方法です。
二つ目のやり方で行きたいのなら、ニュース記事を取り込んでそれらを Gnus に 渡すプログラム、同じことをメールに対して行なうプログラム、およびあなたが 書いたメールを Gnus から受け取って、オンラインになったらそれらを送信する プログラムが必要です。
最初に Unix システムについて書きましょう。ニュース記事を取り込むための最 も安易な解は、Leafnode や sn のように小規模 な NNTP サーバーを使うことです。もちろ ん inn のような本格的なニュース サーバーをインストールすることもできます。メールの取り込みに使うもので人 気があるのは fetchmail およ び getmail です。それらにメー ルをディスクに書き込むように指示してください。Gnus はそこから読むことに なります。最後ですがおろそかにできないのはメールの送信です。これにはあら ゆる MTA、例えば sendmail, postfix, exim または qmail を使うことができます。
Windows 小屋のためには Hamster を推します。 それは小さくてフリーなオープンソースのプログラムで、遠隔サーバーからメー ルとニュースを取り込んで、NNTP および POP3 また は IMAP のそれぞれを介して Gnus (あるいは他のメール/ニュースリー ダー) に渡します。さらにそれは Gnus が送信するメールを受け取るため の SMTP サーバーも含んでいます。
ならば、それのエージェントに関係するものは何ですか?
Gnus エージェントは Gnus の一部で、メールとニュースを取り込んでディスク に格納し、後でオフラインのときにそれらを読むことができるようにします。そ れは、言うならば、例えば Forte Agent のようなオフライン・ニュースリーダー の真似をします。まだ 5.8.8 か 5.9 を使っていてエージェントを使いたければ、 以下の行を `~/.gnus.el' ファイルに書き込んでください (これ は 5.10 からディフォルトになっています):
(setq gnus-agent t) |
そうしたら、数あるグループをローカルに格納することができるサーバーを選ば なければなりません。そのためには、サーバーバッファーを開いて (グループバッ ファーで ^ を押して) ください。そして、選んだサーバー名の場所にポ イントを移動させましょう。最後に J a をタイプして、そのサーバーを エージェント化してください。もし間違ってしまったら、あるいは気が変わった ら、J r をタイプすれば元に戻すことができます。終わった ら q をタイプして、グループバッファーに戻ってください。次回エージェ ント化されたサーバーのグループに入るとヘッダーがディスクに格納され、その 次の回にグループバッファーに入ると、そこ (ディスク) から読むようになりま す。
記事の本文もディスクに格納したいのですが、どうすれば良いですか?
ある述語を満足させる記事の本文を自動的に取り込むように、エージェントに指 示することができます。それは、グループバッファーで J c 命令を使う ことによって行くことができる、特別なバッファーで行ないます。どの述語を使 うことができるか、およびそれを正しく行なう方法に関する情報について は Gnus のマニュアルを参照してください。
さらに、どの記事をディスクに格納するかを、手作業でエージェントに指示する こともできます。それには二つのやり方があります:
どんな違いがあるのかって? えーと、ダウンロード可能印が永久的なのに対し て、プロセス印は概略バッファーを抜け出たとたんに消される点です。実際、複 数のグループでダウンロード可能印を設定して、それらすべての記事を (グルー プバッファーで J s 命令を使うことによって) まとめて取り込むことが できます。唯一の欠点は、エージェント化されているサーバーの、選択されたす べてのグループのヘッダーをも取り込んでしまうことです。ヘッダーの量にもよ りますが、最初の取り込みには何時間もかかるかもしれません。
オフラインのときに Gnus にメールやニュース記事を送信させないようにするに は、どうしたら良いですか?
現在の状態がオンライン (plugged) かオフライン (unplugged) かを、Gnus に 言ってあげなければなりません。それ以外のもろもろのことは自動的にやってく れます。plugged と unplugged の切り替えは、グループバッファー で J j 命令を実行することによって行なうことができます。 Gnus を unplugged の状態で起動したいなら、M-x gnus の代わり に M-x gnus-unplugged を使ってください。ただし、これが働くためには エージェントを有効にしなければならないことに注意してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ば良いですか?
質問 8.1 Emacs の中で情報を探したり助けを求めるには、どうすれ
ファイル、PGP、MIME...) に関する情報を、何も見つける
質問 8.2 Gnus のマニュアルの中で、あることがら (例えば添付
ことができません。それらは書かれていないのですか?
質問 8.3 私はどのウェブサイトを知っていなければなりませんか。
か。
質問 8.4 どんなメーリングリストとニュースグループがあります
質問 8.5 バグはどこに報告すれば良いですか?
のですが、どこで見つかりますか?
質問 8.6 その場で即座に得られる助け (real-time help) が欲しい
Emacs の中で情報を探したり助けを求めるには、どうすれば良いですか?
最初に立ち寄るべき場所は Gnus マニュアルです (C-h i d m Gnus RET で Gnus マニュアルを開いたら、メニューを眺め回すか s でテキス ト全体を探してください)。一方 Emacs には標準のヘルプ・コマンドがあって、 それには C-h ともう一つのキーを使います (C-h ? ? をタイプす ると、利用可能なヘルプ・コマンドとそれらの意味が現れます)。さら に M-x apropos-command で利用可能なすべてのコマンドを、 `M-x apropos' で存在する変数を探すことができます。
Gnus のマニュアルの中で、あることがら (例えば添付ファイル、PGP、 MIME...) に関する情報を、何も見つけることができません。それらは書かれて いないのですか?
Gnus マニュアル以外に message、emacs-mime、sieve、EasyPG アシスタント、 および pgg のマニュアルがあります。それらのパッケージは Gnus とともに配 布され、Gnus によって使われますが、真に Gnus の核心部分ではないので別の info ファイルで文書化されています。あなたはそれらのマニュアルも覗いてみ るべきでしょう。
私はどのウェブサイトを知っていなければなりませんか。
最も重要なものは 公式 Gnus ウェブサイト です。
他にも興味深いサイトがあったら教えてください。
どんなメーリングリストとニュースグループがありますか。
Gnus の一般的な質問を取り扱うニュースグループとし て `gnu.emacs.gnus' がありま す (gmane.emacs.gnus.user でも利用可) 。開発版の Gnus に対する質問があるの なら、ding メーリングリストで尋ねる方が良いはずです。以下を参照してくだ さい。
Big8 (訳注: comp, humanities, misc, news, rec, sci, soc, talk の八大ニュー スグループ) にとどまっていたいのならば、 `news.software.readers' もまた、いくらかの Gnus のユーザーによって 読まれています (でも、的確な助けを得ることができる見込みという点では、上 記のグループの方がはるかに良いでしょう)。ドイツ語を話す人向けに は `de.comm.software.gnus' があります。
ding メーリングリスト ([email protected]) は Gnus の開発を扱います。ding リ ストは news.gmane.org にあ る gmane.emacs.gnus.general を NNTP 経由で読むこともできます。
バグはどこに報告すれば良いですか?
M-x gnus-bug 命令を使うことによって に送るメッセージを書き始めることができます。それに はあなたを助けやすくするための、あなたの環境に関する情報が添付されます。 (訳注: 2005年の暮れの時点では、このメーリングリストはまともに機能してい ません。)
その場で即座に得られる助け (real-time help) が欲しいのですが、どこで見つ かりますか?
あなたの IRC を `irc.freenode.net' の `#mygnus' チャ ンネルに接続してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ことができますか?
質問 9.1 Gnus の起動が本当に遅いのですが、どうしたら速くする
いですか?
質問 9.2 グループに入るときの動作を速くするには、どうすれば良
しょう?
質問 9.3 メールの送信が遅くなってしまいました。何が起きたので
Gnus の起動が本当に遅いのですが、どうしたら速くすることができますか?
この原因は、Gnus が active ファイルを読む方法に関係していることがあり得 ます。Gnus マニュアルの see 節 `アクティブファイル' in
require
を使っているならば、 それらを eval-after-load
で置き換えることができるでしょう。それは 対象のモジュールを起動時ではなく、必要になったときに読み込むようにします。 あなたの `~/.gnus.el' ファイルに以下のようなものがある場合には、
(require 'message) (add-to-list 'message-syntax-checks '(sender . disabled)) |
Gnus を起動したとたんに `message.el' が読み込まれます。これを次のよ うに置き換えると、
(eval-after-load "message" '(add-to-list 'message-syntax-checks '(sender . disabled))) |
それは必要になったときに読み込まれるようになります。
訳注: 原典の例は不適切です。現在の Gnus は多くの主要なモジュールを起動時 に load するようになっていて、例えば `message.el' モジュール は `~/.gnus.el' ファイルを読み込む時点ですでに load されています。 ですから少なくとも `message.el' モジュールに対して は require
も eval-after-load
も使う必要がありません。実害 はありませんが何の効果もありません。変数 message-syntax-checks
に 項目を追加する上記の例は、単に以下のように書けば十分です。
(add-to-list 'message-syntax-checks '(sender . disabled)) |
グループに入るときの動作を速くするには、どうすれば良いですか?
スピードの殺し屋は、nil
以外の値を設定され た gnus-fetch-old-headers
変数です。ですからスピードが問題なので あれば、それをやらないでください。概略バッファーの構築を速くするには、
(gnus-compile) |
を `~/.gnus.el' ファイルの最後に書き込んでください。これによっ て Gnus は gnus-summary-line-format
のようなものをバイトコンパイ ルします。(訳注: それを行なうと `~/.newsrc.eld' ファイルにバイナリー コードが書き込まれるので、非-ASCII テキストで表現されたトピック名などと 共存できなくなる危険があります。)
それから、`~/.emacs' に以下のようなものを書き込んで、 gc-cons-threshold
の値を増やしてみてください。
(setq gc-cons-threshold 3500000) |
CJK (中国語/日本語/韓国語) の文字の幅を気にしないのならば、または最近 の Emacs とともに Gnus 5.10 かそれより新しいものを使っているのならば、 次の行を `~/.gnus.el' ファイルに入れましょう:
(setq gnus-use-correct-string-widths nil) |
訳注: See 節 `Wide Characters' in
(これら二つの提言をしてくれた Jesper harder さんに感謝します。)
最後に、まだ 5.8.8 か 5.9 を使っていて、概略バッファーを構築する場合の速 度に問題があることを経験するのであれば、絶対に 5.10 に上げるべきです。そ こではそれを改善するための、並外れた作業が行なわれました。
メールの送信が遅くなってしまいました。何が起きたのでしょう?
その理由は、gnus-message-archive-group
変数の設定によって、送信メッ セージの控えを保存する場所や方法を変更したせいかもしれません。アーカイブ グループの代わりに nnml
グループを使ってみてください。そうすれば 正常な速度が戻ってくるはずです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |