Add arch tagline
[bpt/emacs.git] / etc / gnus-tut.txt
CommitLineData
a7bfd66f
DL
1From lars Thu Feb 23 23:20:38 1995
2From: larsi@ifi.uio.no (ding)
3Date: Fri Feb 24 13:40:45 1995
4Subject: So you want to use the new Gnus
5Message-ID: <lars-doc1@eyesore.no>
6
7Actually, since you are reading this, chances are you are already
8using the new Gnus. Congratulations.
9
10This entire newsgroup you are reading is, in fact, no real newsgroup
11at all, in the traditional sense. It is an example of one of the
12"foreign" select methods that Gnus may use.
13
14The text you are now reading is stored in the "etc" directory with the
15rest of the Emacs sources. You are using the "nndoc" backend for
16accessing it. Scary, isn't it?
17
18This isn't the real documentation. `M-x info', `m gnus <RET>' to read
19that. This "newsgroup" is intended as a kinder, gentler way of getting
20people started.
21
22Gnus is a rewrite of GNUS 4.1, written by Masanobu Umeda. The rewrite
23was done by moi, yours truly, your humble servant, Lars Magne
24Ingebrigtsen. If you have a WWW browser, you can investigate to your
25heart's delight at <URL:http://www.ifi.uio.no/~larsi/larsi.html>.
26
5b0d63bc
TTN
27;; Copyright (C) 1995, 2002, 2003, 2004, 2005,
28;; 2006 Free Software Foundation, Inc.
a7bfd66f
DL
29
30;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
31;; Keywords: news
32
33;; This file is part of GNU Emacs.
34
35;; GNU Emacs is free software; you can redistribute it and/or modify
36;; it under the terms of the GNU General Public License as published by
37;; the Free Software Foundation; either version 2, or (at your option)
38;; any later version.
39
40;; GNU Emacs is distributed in the hope that it will be useful,
41;; but WITHOUT ANY WARRANTY; without even the implied warranty of
42;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43;; GNU General Public License for more details.
44
45;; You should have received a copy of the GNU General Public License
46;; along with GNU Emacs; see the file COPYING. If not, write to the
364c38d3
LK
47;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
48;; Boston, MA 02110-1301, USA.
a7bfd66f
DL
49
50From lars Thu Feb 23 23:20:38 1995
51From: larsi@ifi.uio.no (ding)
52Date: Fri Feb 24 13:40:45 1995
53Subject: Starting up
54Message-ID: <lars-doc2@eyesore.no>
55
56If you are having problems with Gnus not finding your server, you have
57to set `gnus-select-method'. A "method" is a way of specifying *how*
58the news is to be found, and from *where*.
59
60Say you want to read news from you local, friendly nntp server
177c0ea7 61"news.my.local.server".
a7bfd66f
DL
62
63(setq gnus-select-method '(nntp "news.my.local.server"))
64
65Quite easy, huh?
66
67From the news spool:
68
69(setq gnus-select-method '(nnspool ""))
70
71From your mh-e spool:
72
73(setq gnus-select-method '(nnmh ""))
74
75There's a whole bunch of other methods for reading mail and news, see
76the "Foreign groups" article for that.
77
78
79From lars Thu Feb 23 23:20:38 1995
80From: larsi@ifi.uio.no (ding)
81Date: Fri Feb 24 13:40:45 1995
82Subject: Where are all the groups, then?
83Message-ID: <lars-doc3@eyesore.no>
84
85If this is the first time you have used a newsreader, you won't have a
86.newsrc file. This means that Gnus will think that all the newsgroups
87on the server are "new", and kill them all.
88
89If you have a .newsrc file, the new groups will be processed with the
90function in the `gnus-subscribe-newsgroup-method' variable, which is
91`gnus-subscribe-zombies' by default.
92
93This means that all the groups have been made into "zombies" - not
94quite dead, but not exactly alive, either.
95
96Jump back to the *Group* buffer, and type `A z' to list all the zombie
97groups. Look though the list, and subscribe to the groups you want to
98read by pressing `u' on the one you think look interesting.
99
100If all the groups have been killed, type `A k' to list all the killed
101groups. Subscribe to them the same way.
102
103When you are satisfied, press `S z' to kill all the zombie groups.
104
105Now you should have a nice list of all groups you are interested in.
106
107(If you later want to subscribe to more groups, press `A k' to
108list all the kill groups, and repeat. You can also type `U' and be
109prompted for groups to subscribe to.)
110
111
112From lars Thu Feb 23 23:20:38 1995
113From: larsi@ifi.uio.no (ding)
114Date: Fri Feb 24 13:40:45 1995
115Subject: I want to read my mail!
116Message-ID: <lars-doc4@eyesore.no>
117
118Yes, Virginia, you can read mail with Gnus.
119
120First you have to decide which mail backend you want to use. You have
121nnml, which is a one-file-one-mail backend, which is quite nice, but
122apt to make your systems administrator go crazy and come after you
123with a shotgun.
124
125nnmbox uses a Unix mail box to store mail. Nice, but slow.
126
127nnmh uses mh-e folders, which is also a one-file-one-mail thingie, but
128slower than nnml. (It doesn't support NOV files.)
129
130So if you want to go with nnmbox, you can simply say:
131
132(setq gnus-secondary-select-methods '((nnmbox "")))
133
134(The same for the other methods, kind of.)
135
177c0ea7 136You should also set `nnmail-split-methods' to something sensible:
a7bfd66f 137
177c0ea7 138(setq nnmail-split-methods
a7bfd66f
DL
139 '(("mail.junk" "From:.*Lars")
140 ("mail.misc "")))
141
142This will put all mail from me in you junk mail group, and the rest in
177c0ea7 143"mail.misc".
a7bfd66f
DL
144
145These groups will be subscribe the same way as the normal groups, so
146you will probably find them among the zombie groups after you set
147these variables and re-start Gnus.
148
149
150From lars Thu Feb 23 23:20:38 1995
151From: larsi@ifi.uio.no (ding)
152Date: Fri Feb 24 13:40:45 1995
153Subject: Foreign newsgroups
154Message-ID: <lars-doc5@eyesore.no>
155
177c0ea7 156These are groups that do not come from `gnus-select-method'.
a7bfd66f
DL
157
158Say you want to read "alt.furniture.couches" from "news.funet.fi". You
159can then either type `B news.funet.fi <RET>' to browse that server and
177c0ea7 160subscribe to that group, or you can type
a7bfd66f
DL
161`G m alt.furniture.couches<RET>nntp<RET>news.funet.fi<RET>', if you
162like to type a lot.
163
164If you want to read a directory as a newsgroup, you can create an
165nndir group, much the same way. There's a shorthand for that,
166though. If, for instance, you want to read the (ding) list archives,
167you could type `G d /ftp <RET>'.
168
169There's lots more to know about foreign groups, but you have to read
170the info pages to find out more.
171
172
173From lars Thu Feb 23 23:20:38 1995
174From: larsi@ifi.uio.no (ding)
175Date: Fri Feb 24 13:40:45 1995
176Subject: Low level changes in GNUS, or, Wrong type argument: stringp, nil
177Message-ID: <lars-doc6@eyesore.no>
178
179Gnus really isn't GNUS, even though it looks like it. If you scrape
180the surface, you'll find that most things have changed.
181
177c0ea7 182This means that old code that relies on GNUS internals will fail.
a7bfd66f
DL
183
184In particular, `gnus-newsrc-hashtb', `gnus-newsrc-assoc',
185`gnus-killed-list', the `nntp-header-' macros and the display formats
186have all changed. If you have some code lying around that depend on
187these, or change these, you'll have to re-write your code.
188
189Old hilit19 code does not work at all. In fact, you should probably
190remove all hilit code from all the Gnus hooks
191(`gnus-group-prepare-hook', `gnus-summary-prepare-hook' and
192`gnus-summary-article-hook'). (Well, at the very least the first
193two.) Gnus provides various integrated functions for highlighting,
194which are both faster and more accurated.
195
196There is absolutely no chance, whatsoever, of getting Gnus to work
197with Emacs 18. It won't even work on Emacsen older than Emacs
19819.30/XEmacs 19.13. Upgrade your Emacs or die.
199
177c0ea7 200
a7bfd66f
DL
201From lars Thu Feb 23 23:20:38 1995
202From: larsi@ifi.uio.no (ding)
203Date: Fri Feb 24 13:40:45 1995
204Subject: How do I re-scan my mail groups?
205Message-ID: <lars-doc8@eyesore.no>
206
207Reading the active file from the nntp server is a drag.
208
209Just press `M-g' on the mail groups, and they will be re-scanned.
210
211You can also re-scan all the mail groups by putting them on level 1
212(`S l 1'), and saying `1 g' to re-scan all level 1 groups.
213
214
215From lars Thu Feb 23 23:20:38 1995
216From: larsi@ifi.uio.no (ding)
217Date: Fri Feb 24 13:40:45 1995
218Subject: How do I set up virtual newsgroups?
219Message-ID: <lars-doc9@eyesore.no>
220
221Virtual newsgroups are collections of other newsgroups. Why people
222want this is beyond me, but here goes:
223
224Create the group by saying
225
226`M-a my.virtual.newsgroup<RET>nnvirtual<RET>^rec\.aquaria\.*<RET>'
227
228This will create the group "nnvirtual:my.virtual.newsgroup", which
229will collect all articles from all the groups in the "rec.aquaria"
177c0ea7 230hierarchy.
a7bfd66f
DL
231
232If you want to edit the regular expression, just type `M-e' on the
233group line.
234
235Note that all the groups that are part of the virtual group have to be
236alive. This means that the cannot, absolutely not, be zombie or
237killed. They can be unsubscribed; that's no problem.
238
239You can combine groups from different servers in the same virtual
240newsgroup, something that may actually be useful. Say you have the
241group "comp.headers" on the server "news.server.no" and the same group
242on "news.server.edu". If people have posted articles with Distribution
243headers that stop propagation of their articles, combining these two
244newsgroups into one virtual newsgroup should give you a better view of
245what's going on.
246
247One caveat, though: The virtual group article numbers from the first
248source group (group A) will always be lower than the article numbers
249from the second (group B). This means that Gnus will believe that
250articles from group A are older than articles from group B. Threading
251will lessen these problems, but it might be a good idea to sort the
252threads over the date of the articles to get a correct feel for the
253flow of the groups:
254
255(setq gnus-thread-sort-functions '(gnus-thread-sort-by-date))
256
257If you only want this in virtual groups, you could say something along
258the lines of:
259
260(setq gnus-select-group-hook
261 (lambda ()
177c0ea7 262 (if (eq 'nnvirtual (car (gnus-find-method-for-group
a7bfd66f
DL
263 gnus-newsgroup-name)))
264 (progn
265 (make-local-variable 'gnus-thread-sort-functions)
266 (setq gnus-thread-sort-functions '(gnus-thread-sort-by-date))))))
267
268
269From lars Thu Feb 23 23:20:38 1995
270From: larsi@ifi.uio.no (ding)
271Date: Fri Feb 24 13:40:45 1995
272Subject: Bugs & stuff
273Message-ID: <lars-doc7@eyesore.no>
274
275If you want to report a bug, please type `M-x gnus-bug'. This will
276give me a precise overview of your Gnus and Emacs version numbers,
277along with a look at all Gnus variables you have changed.
278
279Du not expect a reply back, but your bug should be fixed in the next
280version. If the bug persists, please re-submit your bug report.
281
282When a bug occurs, I need a recipe for how to trigger the bug. You
283have to tell me exactly what you do to uncover the bug, and you should
284(setq debug-on-error t) and send me the backtrace along with the bug
177c0ea7 285report.
a7bfd66f
DL
286
287If I am not able to reproduce the bug, I won't be able to fix it.
288
289I would, of course, prefer that you locate the bug, fix it, and mail
290me the patches, but one can't have everything.
291
292If you have any questions on usage, the "ding@ifi.uio.no" mailing list
293is where to post the questions.
294
295