This is ../info/gnus, produced by makeinfo version 4.3 from gnus.texi. INFO-DIR-SECTION Emacs START-INFO-DIR-ENTRY * Gnus: (gnus). The newsreader Gnus. END-INFO-DIR-ENTRY This file documents Gnus, the GNU Emacs newsreader. Copyright (C) 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being none, with the Front-Cover texts being "A GNU Manual", and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License" in the Emacs manual. (a) The FSF's Back-Cover Text is: "You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development." This document is part of a collection distributed under the GNU Free Documentation License. If you want to distribute this document separately from the collection, you can do so by adding a copy of the license to the document, as described in section 6 of the license.  File: gnus, Node: History, Next: On Writing Manuals, Up: Appendices History ======= GNUS was written by Masanobu UMEDA. When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and decided to rewrite Gnus. If you want to investigate the person responsible for this outrage, you can point your (feh!) web browser to `http://quimby.gnus.org/'. This is also the primary distribution point for the new and spiffy versions of Gnus, and is known as The Site That Destroys Newsrcs And Drives People Mad. During the first extended alpha period of development, the new Gnus was called "(ding) Gnus". "(ding)" is, of course, short for "ding is not Gnus", which is a total and utter lie, but who cares? (Besides, the "Gnus" in this abbreviation should probably be pronounced "news" as UMEDA intended, which makes it a more appropriate name, don't you think?) In any case, after spending all that energy on coming up with a new and spunky name, we decided that the name was _too_ spunky, so we renamed it back again to "Gnus". But in mixed case. "Gnus" vs. "GNUS". New vs. old. * Menu: * Gnus Versions:: What Gnus versions have been released. * Other Gnus Versions:: Other Gnus versions that also have been released. * Why?:: What's the point of Gnus? * Compatibility:: Just how compatible is Gnus with GNUS? * Conformity:: Gnus tries to conform to all standards. * Emacsen:: Gnus can be run on a few modern Emacsen. * Gnus Development:: How Gnus is developed. * Contributors:: Oodles of people. * New Features:: Pointers to some of the new stuff in Gnus.  File: gnus, Node: Gnus Versions, Next: Other Gnus Versions, Up: History Gnus Versions ------------- The first "proper" release of Gnus 5 was done in November 1995 when it was included in the Emacs 19.30 distribution (132 (ding) Gnus releases plus 15 Gnus 5.0 releases). In May 1996 the next Gnus generation (aka. "September Gnus" (after 99 releases)) was released under the name "Gnus 5.2" (40 releases). On July 28th 1996 work on Red Gnus was begun, and it was released on January 25th 1997 (after 84 releases) as "Gnus 5.4" (67 releases). On September 13th 1997, Quassia Gnus was started and lasted 37 releases. If was released as "Gnus 5.6" on March 8th 1998 (46 releases). Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as "Gnus 5.8" (after 99 releases and a CVS repository) on December 3rd 1999. If you happen upon a version of Gnus that has a prefixed name - "(ding) Gnus", "September Gnus", "Red Gnus", "Quassia Gnus" - don't panic. Don't let it know that you're frightened. Back away. Slowly. Whatever you do, don't run. Walk away, calmly, until you're out of its reach. Find a proper released version of Gnus and snuggle up to that instead.  File: gnus, Node: Other Gnus Versions, Next: Why?, Prev: Gnus Versions, Up: History Other Gnus Versions ------------------- In addition to the versions of Gnus which have had their releases coordinated by Lars, one major development has been Semi-gnus from Japan. It's based on a library called SEMI, which provides MIME capabilities. These Gnusae are based mainly on Gnus 5.6 and Pterodactyl Gnus. Collectively, they are called "Semi-gnus", and different strains are called T-gnus, ET-gnus, Nana-gnus and Chaos. These provide powerful MIME and multilingualization things, especially important for Japanese users.  File: gnus, Node: Why?, Next: Compatibility, Prev: Other Gnus Versions, Up: History Why? ---- What's the point of Gnus? I want to provide a "rad", "happening", "way cool" and "hep" newsreader, that lets you do anything you can think of. That was my original motivation, but while working on Gnus, it has become clear to me that this generation of newsreaders really belong in the stone age. Newsreaders haven't developed much since the infancy of the net. If the volume continues to rise with the current rate of increase, all current newsreaders will be pretty much useless. How do you deal with newsgroups that have thousands of new articles each day? How do you keep track of millions of people who post? Gnus offers no real solutions to these questions, but I would very much like to see Gnus being used as a testing ground for new methods of reading and fetching news. Expanding on UMEDA-san's wise decision to separate the newsreader from the back ends, Gnus now offers a simple interface for anybody who wants to write new back ends for fetching mail and news from different sources. I have added hooks for customizations everywhere I could imagine it being useful. By doing so, I'm inviting every one of you to explore and invent. May Gnus never be complete. `C-u 100 M-x all-hail-emacs' and `C-u 100 M-x all-hail-xemacs'.  File: gnus, Node: Compatibility, Next: Conformity, Prev: Why?, Up: History Compatibility ------------- Gnus was designed to be fully compatible with GNUS. Almost all key bindings have been kept. More key bindings have been added, of course, but only in one or two obscure cases have old bindings been changed. Our motto is: In a cloud bones of steel. All commands have kept their names. Some internal functions have changed their names. The `gnus-uu' package has changed drastically. *Note Decoding Articles::. One major compatibility question is the presence of several summary buffers. All variables relevant while reading a group are buffer-local to the summary buffer they belong in. Although many important variables have their values copied into their global counterparts whenever a command is executed in the summary buffer, this change might lead to incorrect values being used unless you are careful. All code that relies on knowledge of GNUS internals will probably fail. To take two examples: Sorting `gnus-newsrc-alist' (or changing it in any way, as a matter of fact) is strictly verboten. Gnus maintains a hash table that points to the entries in this alist (which speeds up many functions), and changing the alist directly will lead to peculiar results. Old hilit19 code does not work at all. In fact, you should probably remove all hilit code from all Gnus hooks (`gnus-group-prepare-hook' and `gnus-summary-prepare-hook'). Gnus provides various integrated functions for highlighting. These are faster and more accurate. To make life easier for everybody, Gnus will by default remove all hilit calls from all hilit hooks. Uncleanliness! Away! Packages like `expire-kill' will no longer work. As a matter of fact, you should probably remove all old GNUS packages (and other code) when you start using Gnus. More likely than not, Gnus already does what you have written code to make GNUS do. (Snicker.) Even though old methods of doing things are still supported, only the new methods are documented in this manual. If you detect a new method of doing something while reading this manual, that does not mean you have to stop doing it the old way. Gnus understands all GNUS startup files. Overall, a casual user who hasn't written much code that depends on GNUS internals should suffer no problems. If problems occur, please let me know by issuing that magic command `M-x gnus-bug'. If you are in the habit of sending bug reports _very_ often, you may find the helpful help buffer annoying after a while. If so, set `gnus-bug-create-help-buffer' to `nil' to avoid having it pop up at you.  File: gnus, Node: Conformity, Next: Emacsen, Prev: Compatibility, Up: History Conformity ---------- No rebels without a clue here, ma'am. We conform to all standards known to (wo)man. Except for those standards and/or conventions we disagree with, of course. *RFC 822* There are no known breaches of this standard. *RFC 1036* There are no known breaches of this standard, either. *Son-of-RFC 1036* We do have some breaches to this one. _X-Newsreader_ _User-Agent_ These are considered to be "vanity headers", while I consider them to be consumer information. After seeing so many badly formatted articles coming from `tin' and `Netscape' I know not to use either of those for posting articles. I would not have known that if it wasn't for the `X-Newsreader' header. *USEFOR* USEFOR is an IETF working group writing a successor to RFC 1036, based on Son-of-RFC 1036. They have produced a number of drafts proposing various changes to the format of news articles. The Gnus towers will look into implementing the changes when the draft is accepted as an RFC. If you ever notice Gnus acting non-compliant with regards to the texts mentioned above, don't hesitate to drop a note to Gnus Towers and let us know.  File: gnus, Node: Emacsen, Next: Gnus Development, Prev: Conformity, Up: History Emacsen ------- Gnus should work on : * Emacs 20.3 and up. * XEmacs 20.4 and up. This Gnus version will absolutely not work on any Emacsen older than that. Not reliably, at least. Older versions of Gnus may work on older Emacs versions. There are some vague differences between Gnus on the various platforms--XEmacs features more graphics (a logo and a toolbar)--but other than that, things should look pretty much the same under all Emacsen.  File: gnus, Node: Gnus Development, Next: Contributors, Prev: Emacsen, Up: History Gnus Development ---------------- Gnus is developed in a two-phased cycle. The first phase involves much discussion on the `ding@gnus.org' mailing list, where people propose changes and new features, post patches and new back ends. This phase is called the "alpha" phase, since the Gnusae released in this phase are "alpha releases", or (perhaps more commonly in other circles) "snapshots". During this phase, Gnus is assumed to be unstable and should not be used by casual users. Gnus alpha releases have names like "Red Gnus" and "Quassia Gnus". After futzing around for 50-100 alpha releases, Gnus is declared "frozen", and only bug fixes are applied. Gnus loses the prefix, and is called things like "Gnus 5.6.32" instead. Normal people are supposed to be able to use these, and these are mostly discussed on the `gnu.emacs.gnus' newsgroup. Some variable defaults differ between alpha Gnusae and released Gnusae. In particular, `mail-source-delete-incoming' defaults to `nil' in alpha Gnusae and `t' in released Gnusae. This is to prevent lossage of mail if an alpha release hiccups while handling the mail. The division of discussion between the ding mailing list and the Gnus newsgroup is not purely based on publicity concerns. It's true that having people write about the horrible things that an alpha Gnus release can do (sometimes) in a public forum may scare people off, but more importantly, talking about new experimental features that have been introduced may confuse casual users. New features are frequently introduced, fiddled with, and judged to be found wanting, and then either discarded or totally rewritten. People reading the mailing list usually keep up with these rapid changes, while people on the newsgroup can't be assumed to do so.  File: gnus, Node: Contributors, Next: New Features, Prev: Gnus Development, Up: History Contributors ------------ The new Gnus version couldn't have been done without the help of all the people on the (ding) mailing list. Every day for over a year I have gotten billions of nice bug reports from them, filling me with joy, every single one of them. Smooches. The people on the list have been tried beyond endurance, what with my "oh, that's a neat idea , yup, I'll release it right away no wait, that doesn't work at all , yup, I'll ship that one off right away no, wait, that absolutely does not work" policy for releases. Micro$oft--bah. Amateurs. I'm _much_ worse. (Or is that "worser"? "much worser"? "worsest"?) I would like to take this opportunity to thank the Academy for... oops, wrong show. * Masanobu UMEDA--the writer of the original GNUS. * Shenghuo Zhu--uudecode.el, mm-uu.el, rfc1843.el, webmail.el, nnwarchive and many, many other things connected with MIME and other types of en/decoding, as well as general bug fixing, new functionality and stuff. * Per Abrahamsen--custom, scoring, highlighting and SOUP code (as well as numerous other things). * Luis Fernandes--design and graphics. * Justin Sheehy-the FAQ maintainer. * Erik Naggum--help, ideas, support, code and stuff. * Wes Hardaker--`gnus-picon.el' and the manual section on "picons" (*note Picons::). * Kim-Minh Kaplan--further work on the picon code. * Brad Miller--`gnus-gl.el' and the GroupLens manual section (*note GroupLens::). * Sudish Joseph--innumerable bug fixes. * Ilja Weis--`gnus-topic.el'. * Steven L. Baur--lots and lots and lots of bugs detections and fixes. * Vladimir Alexiev--the refcard and reference booklets. * Felix Lee & Jamie Zawinski--I stole some pieces from the XGnus distribution by Felix Lee and JWZ. * Scott Byer--`nnfolder.el' enhancements & rewrite. * Peter Mutsaers--orphan article scoring code. * Ken Raeburn--POP mail support. * Hallvard B Furuseth--various bits and pieces, especially dealing with .newsrc files. * Brian Edmonds--`gnus-bbdb.el'. * David Moore--rewrite of `nnvirtual.el' and many other things. * Kevin Davidson--came up with the name "ding", so blame him. * François Pinard--many, many interesting and thorough bug reports, as well as autoconf support. This manual was proof-read by Adrian Aichner, with Ricardo Nassif, Mark Borges, and Jost Krieger proof-reading parts of the manual. The following people have contributed many patches and suggestions: Christopher Davis, Andrew Eskilsson, Kai Grossjohann, David Kċgedal, Richard Pieri, Fabrice Popineau, Daniel Quinlan, Jason L. Tibbitts, III, and Jack Vinson. Also thanks to the following for patches and stuff: Jari Aalto, Adrian Aichner, Vladimir Alexiev, Russ Allbery, Peter Arius, Matt Armstrong, Marc Auslander, Miles Bader, Alexei V. Barantsev, Frank Bennett, Robert Bihlmeyer, Chris Bone, Mark Borges, Mark Boyns, Lance A. Brown, Rob Browning, 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, Enami Tsugutomo, 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, Kenichi Handa, Raja R. Harinath, Yoshiki Hayashi, P. E. Jareth Hein, Hisashige Kenji, Scott Hofmann, Marc Horowitz, Gunnar Horrigmo, Richard Hoskins, Brad Howes, Miguel de Icaza, François Felix Ingrand, Tatsuya Ichikawa, Ishikawa Ichiro, Lee Iverson, Iwamuro Motonori, Rajappa Iyer, Andreas Jaeger, Adam P. Jenkins, Randell Jesup, Fred Johansen, Gareth Jones, Simon Josefsson, Greg Klanderman, Karl Kleinpaste, Michael Klingbeil, Peter Skov Knudsen, Shuhei Kobayashi, Petr Konecny, Koseki Yoshinori, 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, Morioka Tomohiko, Erik Toubro Nielsen, Hrvoje Niksic, Andy Norman, Fred Oberhauser, C. R. Oldham, Alexandre Oliva, Ken Olstad, Masaharu Onishi, Hideki Ono, 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, 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, Kiyokazu Suto, Kurt Swanson, Samuel Tardieu, Teddy, Chuck Thompson, Tozawa Akihiko, 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, Katsumi Yamaoka and Lloyd Zusman. For a full overview of what each person has done, the ChangeLogs included in the Gnus alpha distributions should give ample reading (550kB and counting). Apologies to everybody that I've forgotten, of which there are many, I'm sure. Gee, that's quite a list of people. I guess that must mean that there actually are people who are using Gnus. Who'd'a thunk it!  File: gnus, Node: New Features, Prev: Contributors, Up: History New Features ------------ * Menu: * ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus. * September Gnus:: The Thing Formally Known As Gnus 5.2/5.3. * Red Gnus:: Third time best---Gnus 5.4/5.5. * Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. * Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. These lists are, of course, just _short_ overviews of the _most_ important new features. No, really. There are tons more. Yes, we have feeping creaturism in full effect.  File: gnus, Node: ding Gnus, Next: September Gnus, Up: New Features (ding) Gnus ........... New features in Gnus 5.0/5.1: * The look of all buffers can be changed by setting format-like variables (*note Group Buffer Format:: and *note Summary Buffer Format::). * Local spool and several NNTP servers can be used at once (*note Select Methods::). * You can combine groups into virtual groups (*note Virtual Groups::). * You can read a number of different mail formats (*note Getting Mail::). All the mail back ends implement a convenient mail expiry scheme (*note Expiring Mail::). * Gnus can use various strategies for gathering threads that have lost their roots (thereby gathering loose sub-threads into one thread) or it can go back and retrieve enough headers to build a complete thread (*note Customizing Threading::). * Killed groups can be displayed in the group buffer, and you can read them as well (*note Listing Groups::). * Gnus can do partial group updates--you do not have to retrieve the entire active file just to check for new articles in a few groups (*note The Active File::). * Gnus implements a sliding scale of subscribedness to groups (*note Group Levels::). * You can score articles according to any number of criteria (*note Scoring::). You can even get Gnus to find out how to score articles for you (*note Adaptive Scoring::). * Gnus maintains a dribble buffer that is auto-saved the normal Emacs manner, so it should be difficult to lose much data on what you have read if your machine should go down (*note Auto Save::). * Gnus now has its own startup file (`.gnus') to avoid cluttering up the `.emacs' file. * You can set the process mark on both groups and articles and perform operations on all the marked items (*note Process/Prefix::). * You can grep through a subset of groups and create a group from the results (*note Kibozed Groups::). * You can list subsets of groups according to, well, anything (*note Listing Groups::). * You can browse foreign servers and subscribe to groups from those servers (*note Browse Foreign Server::). * Gnus can fetch articles, asynchronously, on a second connection to the server (*note Asynchronous Fetching::). * You can cache articles locally (*note Article Caching::). * The uudecode functions have been expanded and generalized (*note Decoding Articles::). * You can still post uuencoded articles, which was a little-known feature of GNUS' past (*note Uuencoding and Posting::). * Fetching parents (and other articles) now actually works without glitches (*note Finding the Parent::). * Gnus can fetch FAQs and group descriptions (*note Group Information::). * Digests (and other files) can be used as the basis for groups (*note Document Groups::). * Articles can be highlighted and customized (*note Customizing Articles::). * URLs and other external references can be buttonized (*note Article Buttons::). * You can do lots of strange stuff with the Gnus window & frame configuration (*note Windows Configuration::). * You can click on buttons instead of using the keyboard (*note Buttons::).  File: gnus, Node: September Gnus, Next: Red Gnus, Prev: ding Gnus, Up: New Features September Gnus .............. New features in Gnus 5.2/5.3: * A new message composition mode is used. All old customization variables for `mail-mode', `rnews-reply-mode' and `gnus-msg' are now obsolete. * Gnus is now able to generate "sparse" threads--threads where missing articles are represented by empty nodes (*note Customizing Threading::). (setq gnus-build-sparse-threads 'some) * Outgoing articles are stored on a special archive server (*note Archived Messages::). * Partial thread regeneration now happens when articles are referred. * Gnus can make use of GroupLens predictions (*note GroupLens::). * Picons (personal icons) can be displayed under XEmacs (*note Picons::). * A `trn'-like tree buffer can be displayed (*note Tree Display::). (setq gnus-use-trees t) * An `nn'-like pick-and-read minor mode is available for the summary buffers (*note Pick and Read::). (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode) * In binary groups you can use a special binary minor mode (*note Binary Groups::). * Groups can be grouped in a folding topic hierarchy (*note Group Topics::). (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) * Gnus can re-send and bounce mail (*note Summary Mail Commands::). * Groups can now have a score, and bubbling based on entry frequency is possible (*note Group Score::). (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group) * Groups can be process-marked, and commands can be performed on groups of groups (*note Marking Groups::). * Caching is possible in virtual groups. * `nndoc' now understands all kinds of digests, mail boxes, rnews news batches, ClariNet briefs collections, and just about everything else (*note Document Groups::). * Gnus has a new back end (`nnsoup') to create/read SOUP packets (*note SOUP::). * The Gnus cache is much faster. * Groups can be sorted according to many criteria (*note Sorting Groups::). * New group parameters have been introduced to set list-addresses and expiry times (*note Group Parameters::). * All formatting specs allow specifying faces to be used (*note Formatting Fonts::). * There are several more commands for setting/removing/acting on process marked articles on the `M P' submap (*note Setting Process Marks::). * The summary buffer can be limited to show parts of the available articles based on a wide range of criteria. These commands have been bound to keys on the `/' submap (*note Limiting::). * Articles can be made persistent with the `*' command (*note Persistent Articles::). * All functions for hiding article elements are now toggles. * Article headers can be buttonized (*note Article Washing::). * All mail back ends support fetching articles by `Message-ID'. * Duplicate mail can now be treated properly (*note Duplicates::). * All summary mode commands are available directly from the article buffer (*note Article Keymap::). * Frames can be part of `gnus-buffer-configuration' (*note Windows Configuration::). * Mail can be re-scanned by a daemonic process (*note Daemons::). * Gnus can make use of NoCeM files to weed out spam (*note NoCeM::). (setq gnus-use-nocem t) * Groups can be made permanently visible (*note Listing Groups::). (setq gnus-permanently-visible-groups "^nnml:") * Many new hooks have been introduced to make customizing easier. * Gnus respects the `Mail-Copies-To' header. * Threads can be gathered by looking at the `References' header (*note Customizing Threading::). (setq gnus-summary-thread-gathering-function 'gnus-gather-threads-by-references) * Read articles can be stored in a special backlog buffer to avoid refetching (*note Article Backlog::). (setq gnus-keep-backlog 50) * A clean copy of the current article is always stored in a separate buffer to allow easier treatment. * Gnus can suggest where to save articles (*note Saving Articles::). * Gnus doesn't have to do as much prompting when saving (*note Saving Articles::). (setq gnus-prompt-before-saving t) * `gnus-uu' can view decoded files asynchronously while fetching articles (*note Other Decode Variables::). (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view) * Filling in the article buffer now works properly on cited text (*note Article Washing::). * Hiding cited text adds buttons to toggle hiding, and how much cited text to hide is now customizable (*note Article Hiding::). (setq gnus-cited-lines-visible 2) * Boring headers can be hidden (*note Article Hiding::). * Default scoring values can now be set from the menu bar. * Further syntax checking of outgoing articles have been added.  File: gnus, Node: Red Gnus, Next: Quassia Gnus, Prev: September Gnus, Up: New Features Red Gnus ........ New features in Gnus 5.4/5.5: * `nntp.el' has been totally rewritten in an asynchronous fashion. * Article prefetching functionality has been moved up into Gnus (*note Asynchronous Fetching::). * Scoring can now be performed with logical operators like `and', `or', `not', and parent redirection (*note Advanced Scoring::). * Article washing status can be displayed in the article mode line (*note Misc Article::). * `gnus.el' has been split into many smaller files. * Suppression of duplicate articles based on Message-ID can be done (*note Duplicate Suppression::). (setq gnus-suppress-duplicates t) * New variables for specifying what score and adapt files are to be considered home score and adapt files (*note Home Score File::) have been added. * `nndoc' was rewritten to be easily extendable (*note Document Server Internals::). * Groups can inherit group parameters from parent topics (*note Topic Parameters::). * Article editing has been revamped and is now actually usable. * Signatures can be recognized in more intelligent fashions (*note Article Signature::). * Summary pick mode has been made to look more `nn'-like. Line numbers are displayed and the `.' command can be used to pick articles (`Pick and Read'). * Commands for moving the `.newsrc.eld' from one server to another have been added (*note Changing Servers::). * There's a way now to specify that "uninteresting" fields be suppressed when generating lines in buffers (*note Advanced Formatting::). * Several commands in the group buffer can be undone with `M-C-_' (*note Undo::). * Scoring can be done on words using the new score type `w' (*note Score File Format::). * Adaptive scoring can be done on a Subject word-by-word basis (*note Adaptive Scoring::). (setq gnus-use-adaptive-scoring '(word)) * Scores can be decayed (*note Score Decays::). (setq gnus-decay-scores t) * Scoring can be performed using a regexp on the Date header. The Date is normalized to compact ISO 8601 format first (*note Score File Format::). * A new command has been added to remove all data on articles from the native server (*note Changing Servers::). * A new command for reading collections of documents (`nndoc' with `nnvirtual' on top) has been added--`M-C-d' (*note Really Various Summary Commands::). * Process mark sets can be pushed and popped (*note Setting Process Marks::). * A new mail-to-news back end makes it possible to post even when the NNTP server doesn't allow posting (*note Mail-To-News Gateways::). * A new back end for reading searches from Web search engines ("DejaNews", "Alta Vista", "InReference") has been added (*note Web Searches::). * Groups inside topics can now be sorted using the standard sorting functions, and each topic can be sorted independently (*note Topic Sorting::). * Subsets of the groups can be sorted independently (`Sorting Groups'). * Cached articles can be pulled into the groups (*note Summary Generation Commands::). * Score files are now applied in a more reliable order (*note Score Variables::). * Reports on where mail messages end up can be generated (*note Splitting Mail::). * More hooks and functions have been added to remove junk from incoming mail before saving the mail (*note Washing Mail::). * Emphasized text can be properly fontisized:  File: gnus, Node: Quassia Gnus, Next: Pterodactyl Gnus, Prev: Red Gnus, Up: New Features Quassia Gnus ............ New features in Gnus 5.6: * New functionality for using Gnus as an offline newsreader has been added. A plethora of new commands and modes have been added. See *note Gnus Unplugged:: for the full story. * The `nndraft' back end has returned, but works differently than before. All Message buffers are now also articles in the `nndraft' group, which is created automatically. * `gnus-alter-header-function' can now be used to alter header values. * `gnus-summary-goto-article' now accept Message-ID's. * A new Message command for deleting text in the body of a message outside the region: `C-c C-v'. * You can now post to component group in `nnvirtual' groups with `C-u C-c C-c'. * `nntp-rlogin-program'--new variable to ease customization. * `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit re-highlighting of the article buffer. * New element in `gnus-boring-article-headers'--`long-to'. * `M-i' symbolic prefix command. See the section "Symbolic Prefixes" in the Gnus manual for details. * `L' and `I' in the summary buffer now take the symbolic prefix `a' to add the score rule to the "all.SCORE" file. * `gnus-simplify-subject-functions' variable to allow greater control over simplification. * `A T'--new command for fetching the current thread. * `/ T'--new command for including the current thread in the limit. * `M-' is a new Message command for breaking cited text. * `\\1'-expressions are now valid in `nnmail-split-methods'. * The `custom-face-lookup' function has been removed. If you used this function in your initialization files, you must rewrite them to use `face-spec-set' instead. * Canceling now uses the current select method. Symbolic prefix `a' forces normal posting method. * New command to translate M******** sm*rtq**t*s into proper text--`W d'. * For easier debugging of `nntp', you can set `nntp-record-commands' to a non-`nil' value. * `nntp' now uses `~/.authinfo', a `.netrc'-like file, for controlling where and how to send AUTHINFO to NNTP servers. * A command for editing group parameters from the summary buffer has been added. * A history of where mails have been split is available. * A new article date command has been added--`article-date-iso8601'. * Subjects can be simplified when threading by setting `gnus-score-thread-simplify'. * A new function for citing in Message has been added--`message-cite-original-without-signature'. * `article-strip-all-blank-lines'--new article command. * A new Message command to kill to the end of the article has been added. * A minimum adaptive score can be specified by using the `gnus-adaptive-word-minimum' variable. * The "lapsed date" article header can be kept continually updated by the `gnus-start-date-timer' command. * Web listserv archives can be read with the `nnlistserv' back end. * Old dejanews archives can now be read by `nnweb'.  File: gnus, Node: Pterodactyl Gnus, Prev: Quassia Gnus, Up: New Features Pterodactyl Gnus ................ New features in Gnus 5.8: * The mail-fetching functions have changed. See the manual for the many details. In particular, all procmail fetching variables are gone. If you used procmail like in (setq nnmail-use-procmail t) (setq nnmail-spool-file 'procmail) (setq nnmail-procmail-directory "~/mail/incoming/") (setq nnmail-procmail-suffix "\\.in") this now has changed to (setq mail-sources '((directory :path "~/mail/incoming/" :suffix ".in"))) More information is available in the info doc at Select Methods -> Getting Mail -> Mail Sources * Gnus is now a MIME-capable reader. This affects many parts of Gnus, and adds a slew of new commands. See the manual for details. * Gnus has also been multilingualized. This also affects too many parts of Gnus to summarize here, and adds many new variables. * `gnus-auto-select-first' can now be a function to be called to position point. * The user can now decide which extra headers should be included in summary buffers and NOV files. * `gnus-article-display-hook' has been removed. Instead, a number of variables starting with `gnus-treat-' have been added. * The Gnus posting styles have been redone again and now works in a subtly different manner. * New web-based back ends have been added: `nnslashdot', `nnwarchive' and `nnultimate'. nnweb has been revamped, again, to keep up with ever-changing layouts. * Gnus can now read IMAP mail via `nnimap'.  File: gnus, Node: On Writing Manuals, Next: Terminology, Prev: History, Up: Appendices On Writing Manuals ================== I guess most manuals are written after-the-fact; documenting a program that's already there. This is not how this manual is written. When implementing something, I write the manual entry for that something straight away. I then see that it's difficult to explain the functionality, so I write how it's supposed to be, and then I change the implementation. Writing the documentation and writing the code goes hand in hand. This, of course, means that this manual has no, or little, flow. It documents absolutely everything in Gnus, but often not where you're looking for it. It is a reference manual, and not a guide to how to get started with Gnus. That would be a totally different book, that should be written using the reference manual as source material. It would look quite differently.  File: gnus, Node: Terminology, Next: Customization, Prev: On Writing Manuals, Up: Appendices Terminology =========== "news" This is what you are supposed to use this thing for--reading news. News is generally fetched from a nearby NNTP server, and is generally publicly available to everybody. If you post news, the entire world is likely to read just what you have written, and they'll all snigger mischievously. Behind your back. "mail" Everything that's delivered to you personally is mail. Some news/mail readers (like Gnus) blur the distinction between mail and news, but there is a difference. Mail is private. News is public. Mailing is not posting, and replying is not following up. "reply" Send a mail to the person who has written what you are reading. "follow up" Post an article to the current newsgroup responding to the article you are reading. "back end" Gnus gets fed articles from a number of back ends, both news and mail back ends. Gnus does not handle the underlying media, so to speak--this is all done by the back ends. "native" Gnus will always use one method (and back end) as the "native", or default, way of getting news. "foreign" You can also have any number of foreign groups active at the same time. These are groups that use non-native non-secondary back ends for getting news. "secondary" Secondary back ends are somewhere half-way between being native and being foreign, but they mostly act like they are native. "article" A message that has been posted as news. "mail message" A message that has been mailed. "message" A mail message or news article "head" The top part of a message, where administrative information (etc.) is put. "body" The rest of an article. Everything not in the head is in the body. "header" A line from the head of an article. "headers" A collection of such lines, or a collection of heads. Or even a collection of NOV lines. "NOV" When Gnus enters a group, it asks the back end for the headers of all unread articles in the group. Most servers support the News OverView format, which is more compact and much faster to read and parse than the normal HEAD format. "level" Each group is subscribed at some "level" or other (1-9). The ones that have a lower level are "more" subscribed than the groups with a higher level. In fact, groups on levels 1-5 are considered "subscribed"; 6-7 are "unsubscribed"; 8 are "zombies"; and 9 are "killed". Commands for listing groups and scanning for new articles will all use the numeric prefix as "working level". "killed groups" No information on killed groups is stored or updated, which makes killed groups much easier to handle than subscribed groups. "zombie groups" Just like killed groups, only slightly less dead. "active file" The news server has to keep track of what articles it carries, and what groups exist. All this information in stored in the active file, which is rather large, as you might surmise. "bogus groups" A group that exists in the `.newsrc' file, but isn't known to the server (i.e., it isn't in the active file), is a _bogus group_. This means that the group probably doesn't exist (any more). "activating" The act of asking the server for info on a group and computing the number of unread articles is called "activating the group". Un-activated groups are listed with `*' in the group buffer. "server" A machine one can connect to and get news (or mail) from. "select method" A structure that specifies the back end, the server and the virtual server settings. "virtual server" A named select method. Since a select method defines all there is to know about connecting to a (physical) server, taking the thing as a whole is a virtual server. "washing" Taking a buffer and running it through a filter of some sort. The result will (more often than not) be cleaner and more pleasing than the original. "ephemeral groups" Most groups store data on what articles you have read. "Ephemeral" groups are groups that will have no data stored--when you exit the group, it'll disappear into the aether. "solid groups" This is the opposite of ephemeral groups. All groups listed in the group buffer are solid groups. "sparse articles" These are article placeholders shown in the summary buffer when `gnus-build-sparse-threads' has been switched on. "threading" To put responses to articles directly after the articles they respond to--in a hierarchical fashion. "root" The first article in a thread is the root. It is the ancestor of all articles in the thread. "parent" An article that has responses. "child" An article that responds to a different article--its parent. "digest" A collection of messages in one file. The most common digest format is specified by RFC 1153.  File: gnus, Node: Customization, Next: Troubleshooting, Prev: Terminology, Up: Appendices Customization ============= All variables are properly documented elsewhere in this manual. This section is designed to give general pointers on how to customize Gnus for some quite common situations. * Menu: * Slow/Expensive Connection:: You run a local Emacs and get the news elsewhere. * Slow Terminal Connection:: You run a remote Emacs. * Little Disk Space:: You feel that having large setup files is icky. * Slow Machine:: You feel like buying a faster machine.  File: gnus, Node: Slow/Expensive Connection, Next: Slow Terminal Connection, Up: Customization Slow/Expensive NNTP Connection ------------------------------ If you run Emacs on a machine locally, and get your news from a machine over some very thin strings, you want to cut down on the amount of data Gnus has to get from the NNTP server. `gnus-read-active-file' Set this to `nil', which will inhibit Gnus from requesting the entire active file from the server. This file is often very large. You also have to set `gnus-check-new-newsgroups' and `gnus-check-bogus-newsgroups' to `nil' to make sure that Gnus doesn't suddenly decide to fetch the active file anyway. `gnus-nov-is-evil' This one has to be `nil'. If not, grabbing article headers from the NNTP server will not be very fast. Not all NNTP servers support XOVER; Gnus will detect this by itself.  File: gnus, Node: Slow Terminal Connection, Next: Little Disk Space, Prev: Slow/Expensive Connection, Up: Customization Slow Terminal Connection ------------------------ Let's say you use your home computer for dialing up the system that runs Emacs and Gnus. If your modem is slow, you want to reduce (as much as possible) the amount of data sent over the wires. `gnus-auto-center-summary' Set this to `nil' to inhibit Gnus from re-centering the summary buffer all the time. If it is `vertical', do only vertical re-centering. If it is neither `nil' nor `vertical', do both horizontal and vertical recentering. `gnus-visible-headers' Cut down on the headers included in the articles to the minimum. You can, in fact, make do without them altogether--most of the useful data is in the summary buffer, anyway. Set this variable to `^NEVVVVER' or `From:', or whatever you feel you need. Set this hook to all the available hiding commands: (setq gnus-treat-hide-headers 'head gnus-treat-hide-signature t gnus-treat-hide-citation t) `gnus-use-full-window' By setting this to `nil', you can make all the windows smaller. While this doesn't really cut down much generally, it means that you have to see smaller portions of articles before deciding that you didn't want to read them anyway. `gnus-thread-hide-subtree' If this is non-`nil', all threads in the summary buffer will be hidden initially. `gnus-updated-mode-lines' If this is `nil', Gnus will not put information in the buffer mode lines, which might save some time.  File: gnus, Node: Little Disk Space, Next: Slow Machine, Prev: Slow Terminal Connection, Up: Customization Little Disk Space ----------------- The startup files can get rather large, so you may want to cut their sizes a bit if you are running out of space. `gnus-save-newsrc-file' If this is `nil', Gnus will never save `.newsrc'--it will only save `.newsrc.eld'. This means that you will not be able to use any other newsreaders than Gnus. This variable is `t' by default. `gnus-read-newsrc-file' If this is `nil', Gnus will never read `.newsrc'--it will only read `.newsrc.eld'. This means that you will not be able to use any other newsreaders than Gnus. This variable is `t' by default. `gnus-save-killed-list' If this is `nil', Gnus will not save the list of dead groups. You should also set `gnus-check-new-newsgroups' to `ask-server' and `gnus-check-bogus-newsgroups' to `nil' if you set this variable to `nil'. This variable is `t' by default.  File: gnus, Node: Slow Machine, Prev: Little Disk Space, Up: Customization Slow Machine ------------ If you have a slow machine, or are just really impatient, there are a few things you can do to make Gnus run faster. Set `gnus-check-new-newsgroups' and `gnus-check-bogus-newsgroups' to `nil' to make startup faster. Set `gnus-show-threads', `gnus-use-cross-reference' and `gnus-nov-is-evil' to `nil' to make entering and exiting the summary buffer faster.  File: gnus, Node: Troubleshooting, Next: Gnus Reference Guide, Prev: Customization, Up: Appendices Troubleshooting =============== Gnus works _so_ well straight out of the box--I can't imagine any problems, really. Ahem. 1. Make sure your computer is switched on. 2. Make sure that you really load the current Gnus version. If you have been running GNUS, you need to exit Emacs and start it up again before Gnus will work. 3. Try doing an `M-x gnus-version'. If you get something that looks like `Gnus v5.46; nntp 4.0' you have the right files loaded. If, on the other hand, you get something like `NNTP 3.x' or `nntp flee', you have some old `.el' files lying around. Delete these. 4. Read the help group (`G h' in the group buffer) for a FAQ and a how-to. 5. Gnus works on many recursive structures, and in some extreme (and very rare) cases Gnus may recurse down "too deeply" and Emacs will beep at you. If this happens to you, set `max-lisp-eval-depth' to 500 or something like that. If all else fails, report the problem as a bug. If you find a bug in Gnus, you can report it with the `M-x gnus-bug' command. `M-x set-variable debug-on-error t ', and send me the backtrace. I will fix bugs, but I can only fix them if you send me a precise description as to how to reproduce the bug. You really can never be too detailed in a bug report. Always use the `M-x gnus-bug' command when you make bug reports, even if it creates a 10Kb mail each time you use it, and even if you have sent me your environment 500 times before. I don't care. I want the full info each time. It is also important to remember that I have no memory whatsoever. If you send a bug report, and I send you a reply, and then you just send back "No, it's not! Moron!", I will have no idea what you are insulting me about. Always over-explain everything. It's much easier for all of us--if I don't have all the information I need, I will just mail you and ask for more info, and everything takes more time. If the problem you're seeing is very visual, and you can't quite explain it, copy the Emacs window to a file (with `xwd', for instance), put it somewhere it can be reached, and include the URL of the picture in the bug report. If you just need help, you are better off asking on `gnu.emacs.gnus'. I'm not very helpful. You can also ask on the ding mailing list--`ding@gnus.org'. Write to `ding-request@gnus.org' to subscribe.