Mercurial > hg > xemacs-beta
comparison man/gnus.texi @ 169:15872534500d r20-3b11
Import from CVS: tag r20-3b11
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:46:53 +0200 |
parents | 85ec50267440 |
children | 8eaf7971accc |
comparison
equal
deleted
inserted
replaced
168:9851d5c6556e | 169:15872534500d |
---|---|
1 \input texinfo @c -*-texinfo-*- | 1 \input texinfo @c -*-texinfo-*- |
2 | 2 |
3 @setfilename gnus | 3 @setfilename gnus |
4 @settitle Gnus 5.4.60 Manual | 4 @settitle Gnus 5.4.62 Manual |
5 @synindex fn cp | 5 @synindex fn cp |
6 @synindex vr cp | 6 @synindex vr cp |
7 @synindex pg cp | 7 @synindex pg cp |
8 @iftex | 8 @iftex |
9 @finalout | 9 @finalout |
307 @end ifinfo | 307 @end ifinfo |
308 | 308 |
309 @tex | 309 @tex |
310 | 310 |
311 @titlepage | 311 @titlepage |
312 @title Gnus 5.4.60 Manual | 312 @title Gnus 5.4.62 Manual |
313 | 313 |
314 @author by Lars Magne Ingebrigtsen | 314 @author by Lars Magne Ingebrigtsen |
315 @page | 315 @page |
316 | 316 |
317 @vskip 0pt plus 1filll | 317 @vskip 0pt plus 1filll |
343 You can read news (and mail) from within Emacs by using Gnus. The news | 343 You can read news (and mail) from within Emacs by using Gnus. The news |
344 can be gotten by any nefarious means you can think of---@sc{nntp}, local | 344 can be gotten by any nefarious means you can think of---@sc{nntp}, local |
345 spool or your mbox file. All at the same time, if you want to push your | 345 spool or your mbox file. All at the same time, if you want to push your |
346 luck. | 346 luck. |
347 | 347 |
348 This manual corresponds to Gnus 5.4.60. | 348 This manual corresponds to Gnus 5.4.62. |
349 | 349 |
350 @end ifinfo | 350 @end ifinfo |
351 | 351 |
352 @iftex | 352 @iftex |
353 | 353 |
432 @vindex gnus-select-method | 432 @vindex gnus-select-method |
433 @c @head | 433 @c @head |
434 The @code{gnus-select-method} variable says where Gnus should look for | 434 The @code{gnus-select-method} variable says where Gnus should look for |
435 news. This variable should be a list where the first element says | 435 news. This variable should be a list where the first element says |
436 @dfn{how} and the second element says @dfn{where}. This method is your | 436 @dfn{how} and the second element says @dfn{where}. This method is your |
437 native method. All groups that are not fetched with this method are | 437 native method. All groups not fetched with this method are |
438 foreign groups. | 438 foreign groups. |
439 | 439 |
440 For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where | 440 For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where |
441 you want to get your daily dosage of news from, you'd say: | 441 you want to get your daily dosage of news from, you'd say: |
442 | 442 |
458 @cindex @sc{nntp} server | 458 @cindex @sc{nntp} server |
459 If this variable is not set, Gnus will take a look at the | 459 If this variable is not set, Gnus will take a look at the |
460 @code{NNTPSERVER} environment variable. If that variable isn't set, | 460 @code{NNTPSERVER} environment variable. If that variable isn't set, |
461 Gnus will see whether @code{gnus-nntpserver-file} | 461 Gnus will see whether @code{gnus-nntpserver-file} |
462 (@file{/etc/nntpserver} by default) has any opinions on the matter. If | 462 (@file{/etc/nntpserver} by default) has any opinions on the matter. If |
463 that fails as well, Gnus will try to use the machine that is | 463 that fails as well, Gnus will try to use the machine running Emacs as an @sc{nntp} server. That's a long shot, though. |
464 running Emacs as an @sc{nntp} server. That's a long shot, though. | |
465 | 464 |
466 @vindex gnus-nntp-server | 465 @vindex gnus-nntp-server |
467 If @code{gnus-nntp-server} is set, this variable will override | 466 If @code{gnus-nntp-server} is set, this variable will override |
468 @code{gnus-select-method}. You should therefore set | 467 @code{gnus-select-method}. You should therefore set |
469 @code{gnus-nntp-server} to @code{nil}, which is what it is by default. | 468 @code{gnus-nntp-server} to @code{nil}, which is what it is by default. |
941 | 940 |
942 @vindex gnus-read-active-file | 941 @vindex gnus-read-active-file |
943 @c @head | 942 @c @head |
944 The active file can be rather Huge, so if you have a slow network, you | 943 The active file can be rather Huge, so if you have a slow network, you |
945 can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from | 944 can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from |
946 reading the active file. This variable is @code{t} by default. | 945 reading the active file. This variable is @code{some} by default. |
947 | 946 |
948 Gnus will try to make do by getting information just on the groups that | 947 Gnus will try to make do by getting information just on the groups that |
949 you actually subscribe to. | 948 you actually subscribe to. |
950 | 949 |
951 Note that if you subscribe to lots and lots of groups, setting this | 950 Note that if you subscribe to lots and lots of groups, setting this |
979 | 978 |
980 @table @code | 979 @table @code |
981 | 980 |
982 @item gnus-load-hook | 981 @item gnus-load-hook |
983 @vindex gnus-load-hook | 982 @vindex gnus-load-hook |
984 A hook that is run while Gnus is being loaded. Note that this hook will | 983 A hook run while Gnus is being loaded. Note that this hook will |
985 normally be run just once in each Emacs session, no matter how many | 984 normally be run just once in each Emacs session, no matter how many |
986 times you start Gnus. | 985 times you start Gnus. |
987 | 986 |
988 @item gnus-startup-hook | 987 @item gnus-startup-hook |
989 @vindex gnus-startup-hook | 988 @vindex gnus-startup-hook |
990 A hook that is run after starting up Gnus successfully. | 989 A hook run after starting up Gnus successfully. |
991 | 990 |
992 @item gnus-started-hook | 991 @item gnus-started-hook |
993 @vindex gnus-started-hook | 992 @vindex gnus-started-hook |
994 A hook that is run as the very last thing after starting up Gnus | 993 A hook run as the very last thing after starting up Gnus |
995 successfully. | 994 successfully. |
996 | 995 |
997 @item gnus-check-bogus-newsgroups | 996 @item gnus-check-bogus-newsgroups |
998 @vindex gnus-check-bogus-newsgroups | 997 @vindex gnus-check-bogus-newsgroups |
999 If non-@code{nil}, Gnus will check for and delete all bogus groups at | 998 If non-@code{nil}, Gnus will check for and delete all bogus groups at |
1632 (un)subscribed. These two variables should, of course, be inside the | 1631 (un)subscribed. These two variables should, of course, be inside the |
1633 relevant legal ranges. | 1632 relevant legal ranges. |
1634 | 1633 |
1635 @vindex gnus-keep-same-level | 1634 @vindex gnus-keep-same-level |
1636 If @code{gnus-keep-same-level} is non-@code{nil}, some movement commands | 1635 If @code{gnus-keep-same-level} is non-@code{nil}, some movement commands |
1637 will only move to groups that are of the same level (or lower). In | 1636 will only move to groups of the same level (or lower). In |
1638 particular, going from the last article in one group to the next group | 1637 particular, going from the last article in one group to the next group |
1639 will go to the next group of the same level (or lower). This might be | 1638 will go to the next group of the same level (or lower). This might be |
1640 handy if you want to read the most important groups before you read the | 1639 handy if you want to read the most important groups before you read the |
1641 rest. | 1640 rest. |
1642 | 1641 |
1655 If @code{gnus-group-use-permanent-levels} is non-@code{nil}, once you | 1654 If @code{gnus-group-use-permanent-levels} is non-@code{nil}, once you |
1656 give a level prefix to @kbd{g} or @kbd{l}, all subsequent commands will | 1655 give a level prefix to @kbd{g} or @kbd{l}, all subsequent commands will |
1657 use this level as the ``work'' level. | 1656 use this level as the ``work'' level. |
1658 | 1657 |
1659 @vindex gnus-activate-level | 1658 @vindex gnus-activate-level |
1660 Gnus will normally just activate groups that are on level | 1659 Gnus will normally just activate groups on level |
1661 @code{gnus-activate-level} or less. If you don't want to activate | 1660 @code{gnus-activate-level} or less. If you don't want to activate |
1662 unsubscribed groups, for instance, you might set this variable to | 1661 unsubscribed groups, for instance, you might set this variable to |
1663 5. The default is 6. | 1662 5. The default is 6. |
1664 | 1663 |
1665 | 1664 |
1980 any default @code{Gcc} rules as described later). | 1979 any default @code{Gcc} rules as described later). |
1981 | 1980 |
1982 @item auto-expire | 1981 @item auto-expire |
1983 @cindex auto-expire | 1982 @cindex auto-expire |
1984 If the group parameter has an element that looks like @code{(auto-expire | 1983 If the group parameter has an element that looks like @code{(auto-expire |
1985 . t)}, all articles that are read will be marked as expirable. For an | 1984 . t)}, all articles read will be marked as expirable. For an |
1986 alternative approach, @pxref{Expiring Mail}. | 1985 alternative approach, @pxref{Expiring Mail}. |
1987 | 1986 |
1988 @item total-expire | 1987 @item total-expire |
1989 @cindex total-expire | 1988 @cindex total-expire |
1990 If the group parameter has an element that looks like | 1989 If the group parameter has an element that looks like |
2069 | 2068 |
2070 @node Listing Groups | 2069 @node Listing Groups |
2071 @section Listing Groups | 2070 @section Listing Groups |
2072 @cindex group listing | 2071 @cindex group listing |
2073 | 2072 |
2074 These commands all list various slices of the groups that are available. | 2073 These commands all list various slices of the groups available. |
2075 | 2074 |
2076 @table @kbd | 2075 @table @kbd |
2077 | 2076 |
2078 @item l | 2077 @item l |
2079 @itemx A s | 2078 @itemx A s |
2130 List groups that match a regexp (@code{gnus-group-list-all-matching}). | 2129 List groups that match a regexp (@code{gnus-group-list-all-matching}). |
2131 | 2130 |
2132 @item A A | 2131 @item A A |
2133 @kindex A A (Group) | 2132 @kindex A A (Group) |
2134 @findex gnus-group-list-active | 2133 @findex gnus-group-list-active |
2135 List absolutely all groups that are in the active file(s) of the | 2134 List absolutely all groups in the active file(s) of the |
2136 server(s) you are connected to (@code{gnus-group-list-active}). This | 2135 server(s) you are connected to (@code{gnus-group-list-active}). This |
2137 might very well take quite a while. It might actually be a better idea | 2136 might very well take quite a while. It might actually be a better idea |
2138 to do a @kbd{A M} to list all matching, and just give @samp{.} as the | 2137 to do a @kbd{A M} to list all matching, and just give @samp{.} as the |
2139 thing to match on. Also note that this command may list groups that | 2138 thing to match on. Also note that this command may list groups that |
2140 don't exist (yet)---these will be listed as if they were killed groups. | 2139 don't exist (yet)---these will be listed as if they were killed groups. |
3320 This hook is called when a summary line is changed. It is not run if | 3319 This hook is called when a summary line is changed. It is not run if |
3321 @code{gnus-visual} is @code{nil}. | 3320 @code{gnus-visual} is @code{nil}. |
3322 | 3321 |
3323 @item gnus-summary-selected-face | 3322 @item gnus-summary-selected-face |
3324 @vindex gnus-summary-selected-face | 3323 @vindex gnus-summary-selected-face |
3325 This is the face (or @dfn{font} as some people call it) that is used to | 3324 This is the face (or @dfn{font} as some people call it) used to |
3326 highlight the current article in the summary buffer. | 3325 highlight the current article in the summary buffer. |
3327 | 3326 |
3328 @item gnus-summary-highlight | 3327 @item gnus-summary-highlight |
3329 @vindex gnus-summary-highlight | 3328 @vindex gnus-summary-highlight |
3330 Summary lines are highlighted according to this variable, which is a | 3329 Summary lines are highlighted according to this variable, which is a |
3530 | 3529 |
3531 | 3530 |
3532 @node Choosing Variables | 3531 @node Choosing Variables |
3533 @subsection Choosing Variables | 3532 @subsection Choosing Variables |
3534 | 3533 |
3535 Some variables that are relevant for moving and selecting articles: | 3534 Some variables relevant for moving and selecting articles: |
3536 | 3535 |
3537 @table @code | 3536 @table @code |
3538 @item gnus-auto-extend-newsgroup | 3537 @item gnus-auto-extend-newsgroup |
3539 @vindex gnus-auto-extend-newsgroup | 3538 @vindex gnus-auto-extend-newsgroup |
3540 All the movement commands will try to go to the previous (or next) | 3539 All the movement commands will try to go to the previous (or next) |
4011 Marked as expirable (@code{gnus-expirable-mark}). | 4010 Marked as expirable (@code{gnus-expirable-mark}). |
4012 | 4011 |
4013 Marking articles as @dfn{expirable} (or have them marked as such | 4012 Marking articles as @dfn{expirable} (or have them marked as such |
4014 automatically) doesn't make much sense in normal groups---a user doesn't | 4013 automatically) doesn't make much sense in normal groups---a user doesn't |
4015 control expiring of news articles, but in mail groups, for instance, | 4014 control expiring of news articles, but in mail groups, for instance, |
4016 articles that are marked as @dfn{expirable} can be deleted by Gnus at | 4015 articles marked as @dfn{expirable} can be deleted by Gnus at |
4017 any time. | 4016 any time. |
4018 @end table | 4017 @end table |
4019 | 4018 |
4020 | 4019 |
4021 @node Other Marks | 4020 @node Other Marks |
4041 answered) will be marked with an @samp{A} in the second column | 4040 answered) will be marked with an @samp{A} in the second column |
4042 (@code{gnus-replied-mark}). | 4041 (@code{gnus-replied-mark}). |
4043 | 4042 |
4044 @item | 4043 @item |
4045 @vindex gnus-cached-mark | 4044 @vindex gnus-cached-mark |
4046 Articles that are stored in the article cache will be marked with an | 4045 Articles stored in the article cache will be marked with an |
4047 @samp{*} in the second column (@code{gnus-cached-mark}). | 4046 @samp{*} in the second column (@code{gnus-cached-mark}). |
4048 | 4047 |
4049 @item | 4048 @item |
4050 @vindex gnus-saved-mark | 4049 @vindex gnus-saved-mark |
4051 Articles that are ``saved'' (in some manner or other; not necessarily | 4050 Articles ``saved'' (in some manner or other; not necessarily |
4052 religiously) are marked with an @samp{S} in the second column | 4051 religiously) are marked with an @samp{S} in the second column |
4053 (@code{gnus-saved-mark}). | 4052 (@code{gnus-saved-mark}). |
4054 | 4053 |
4055 @item | 4054 @item |
4056 @vindex gnus-not-empty-thread-mark | 4055 @vindex gnus-not-empty-thread-mark |
4351 @item / u | 4350 @item / u |
4352 @itemx x | 4351 @itemx x |
4353 @kindex / u (Summary) | 4352 @kindex / u (Summary) |
4354 @kindex x (Summary) | 4353 @kindex x (Summary) |
4355 @findex gnus-summary-limit-to-unread | 4354 @findex gnus-summary-limit-to-unread |
4356 Limit the summary buffer to articles that are not marked as read | 4355 Limit the summary buffer to articles not marked as read |
4357 (@code{gnus-summary-limit-to-unread}). If given a prefix, limit the | 4356 (@code{gnus-summary-limit-to-unread}). If given a prefix, limit the |
4358 buffer to articles that are strictly unread. This means that ticked and | 4357 buffer to articles strictly unread. This means that ticked and |
4359 dormant articles will also be excluded. | 4358 dormant articles will also be excluded. |
4360 | 4359 |
4361 @item / m | 4360 @item / m |
4362 @kindex / m (Summary) | 4361 @kindex / m (Summary) |
4363 @findex gnus-summary-limit-to-marks | 4362 @findex gnus-summary-limit-to-marks |
4365 with that mark (@code{gnus-summary-limit-to-marks}). | 4364 with that mark (@code{gnus-summary-limit-to-marks}). |
4366 | 4365 |
4367 @item / t | 4366 @item / t |
4368 @kindex / t (Summary) | 4367 @kindex / t (Summary) |
4369 @findex gnus-summary-limit-to-age | 4368 @findex gnus-summary-limit-to-age |
4370 Ask for a number and then limit the summary buffer to articles that are | 4369 Ask for a number and then limit the summary buffer to articles older than (or equal to) that number of days |
4371 older than (or equal to) that number of days | |
4372 (@code{gnus-summary-limit-to-marks}). If given a prefix, limit to | 4370 (@code{gnus-summary-limit-to-marks}). If given a prefix, limit to |
4373 articles that are younger than that number of days. | 4371 articles younger than that number of days. |
4374 | 4372 |
4375 @item / n | 4373 @item / n |
4376 @kindex / n (Summary) | 4374 @kindex / n (Summary) |
4377 @findex gnus-summary-limit-to-articles | 4375 @findex gnus-summary-limit-to-articles |
4378 Limit the summary buffer to the current article | 4376 Limit the summary buffer to the current article |
4457 slower and more awkward. | 4455 slower and more awkward. |
4458 | 4456 |
4459 @item gnus-fetch-old-headers | 4457 @item gnus-fetch-old-headers |
4460 @vindex gnus-fetch-old-headers | 4458 @vindex gnus-fetch-old-headers |
4461 If non-@code{nil}, Gnus will attempt to build old threads by fetching | 4459 If non-@code{nil}, Gnus will attempt to build old threads by fetching |
4462 more old headers---headers to articles that are marked as read. If you | 4460 more old headers---headers to articles marked as read. If you |
4463 would like to display as few summary lines as possible, but still | 4461 would like to display as few summary lines as possible, but still |
4464 connect as many loose threads as possible, you should set this variable | 4462 connect as many loose threads as possible, you should set this variable |
4465 to @code{some} or a number. If you set it to a number, no more than | 4463 to @code{some} or a number. If you set it to a number, no more than |
4466 that number of extra old headers will be fetched. In either case, | 4464 that number of extra old headers will be fetched. In either case, |
4467 fetching old headers only works if the backend you are using carries | 4465 fetching old headers only works if the backend you are using carries |
4793 you can fiddle with @code{gnus-thread-operation-ignore-subject}. If it | 4791 you can fiddle with @code{gnus-thread-operation-ignore-subject}. If it |
4794 is non-@code{nil} (which it is by default), subjects will be ignored | 4792 is non-@code{nil} (which it is by default), subjects will be ignored |
4795 when doing thread commands. If this variable is @code{nil}, articles in | 4793 when doing thread commands. If this variable is @code{nil}, articles in |
4796 the same thread with different subjects will not be included in the | 4794 the same thread with different subjects will not be included in the |
4797 operation in question. If this variable is @code{fuzzy}, only articles | 4795 operation in question. If this variable is @code{fuzzy}, only articles |
4798 that have subjects that are fuzzily equal will be included (@pxref{Fuzzy | 4796 that have subjects fuzzily equal will be included (@pxref{Fuzzy |
4799 Matching}). | 4797 Matching}). |
4800 | 4798 |
4801 | 4799 |
4802 @node Sorting | 4800 @node Sorting |
4803 @section Sorting | 4801 @section Sorting |
4866 @findex gnus-article-sort-by-author | 4864 @findex gnus-article-sort-by-author |
4867 @findex gnus-article-sort-by-number | 4865 @findex gnus-article-sort-by-number |
4868 If you are using an unthreaded display for some strange reason or other, | 4866 If you are using an unthreaded display for some strange reason or other, |
4869 you have to fiddle with the @code{gnus-article-sort-functions} variable. | 4867 you have to fiddle with the @code{gnus-article-sort-functions} variable. |
4870 It is very similar to the @code{gnus-thread-sort-functions}, except that | 4868 It is very similar to the @code{gnus-thread-sort-functions}, except that |
4871 is uses slightly different functions for article comparison. Available | 4869 it uses slightly different functions for article comparison. Available |
4872 sorting predicate functions are @code{gnus-article-sort-by-number}, | 4870 sorting predicate functions are @code{gnus-article-sort-by-number}, |
4873 @code{gnus-article-sort-by-author}, @code{gnus-article-sort-by-subject}, | 4871 @code{gnus-article-sort-by-author}, @code{gnus-article-sort-by-subject}, |
4874 @code{gnus-article-sort-by-date}, and @code{gnus-article-sort-by-score}. | 4872 @code{gnus-article-sort-by-date}, and @code{gnus-article-sort-by-score}. |
4875 | 4873 |
4876 If you want to sort an unthreaded summary display by subject, you could | 4874 If you want to sort an unthreaded summary display by subject, you could |
4938 return non-@code{nil} when the article in question is to be | 4936 return non-@code{nil} when the article in question is to be |
4939 pre-fetched. The default is @code{gnus-async-read-p}, which returns | 4937 pre-fetched. The default is @code{gnus-async-read-p}, which returns |
4940 @code{nil} on read articles. The function is called with an article | 4938 @code{nil} on read articles. The function is called with an article |
4941 data structure as the only parameter. | 4939 data structure as the only parameter. |
4942 | 4940 |
4943 If, for instance, you wish to pre-fetch only unread articles that are | 4941 If, for instance, you wish to pre-fetch only unread articles shorter than 100 lines, you could say something like: |
4944 shorter than 100 lines, you could say something like: | |
4945 | 4942 |
4946 @lisp | 4943 @lisp |
4947 (defun my-async-short-unread-p (data) | 4944 (defun my-async-short-unread-p (data) |
4948 "Return non-nil for short, unread articles." | 4945 "Return non-nil for short, unread articles." |
4949 (and (gnus-data-unread-p data) | 4946 (and (gnus-data-unread-p data) |
4992 | 4989 |
4993 @vindex gnus-use-long-file-name | 4990 @vindex gnus-use-long-file-name |
4994 @vindex gnus-cache-directory | 4991 @vindex gnus-cache-directory |
4995 @vindex gnus-use-cache | 4992 @vindex gnus-use-cache |
4996 To turn caching on, set @code{gnus-use-cache} to @code{t}. By default, | 4993 To turn caching on, set @code{gnus-use-cache} to @code{t}. By default, |
4997 all articles that are ticked or marked as dormant will then be copied | 4994 all articles ticked or marked as dormant will then be copied |
4998 over to your local cache (@code{gnus-cache-directory}). Whether this | 4995 over to your local cache (@code{gnus-cache-directory}). Whether this |
4999 cache is flat or hierarchal is controlled by the | 4996 cache is flat or hierarchal is controlled by the |
5000 @code{gnus-use-long-file-name} variable, as usual. | 4997 @code{gnus-use-long-file-name} variable, as usual. |
5001 | 4998 |
5002 When re-selecting a ticked or dormant article, it will be fetched from the | 4999 When re-selecting a ticked or dormant article, it will be fetched from the |
5012 The entering/removal of articles from the cache is controlled by the | 5009 The entering/removal of articles from the cache is controlled by the |
5013 @code{gnus-cache-enter-articles} and @code{gnus-cache-remove-articles} | 5010 @code{gnus-cache-enter-articles} and @code{gnus-cache-remove-articles} |
5014 variables. Both are lists of symbols. The first is @code{(ticked | 5011 variables. Both are lists of symbols. The first is @code{(ticked |
5015 dormant)} by default, meaning that ticked and dormant articles will be | 5012 dormant)} by default, meaning that ticked and dormant articles will be |
5016 put in the cache. The latter is @code{(read)} by default, meaning that | 5013 put in the cache. The latter is @code{(read)} by default, meaning that |
5017 articles that are marked as read are removed from the cache. Possibly | 5014 articles marked as read are removed from the cache. Possibly |
5018 symbols in these two lists are @code{ticked}, @code{dormant}, | 5015 symbols in these two lists are @code{ticked}, @code{dormant}, |
5019 @code{unread} and @code{read}. | 5016 @code{unread} and @code{read}. |
5020 | 5017 |
5021 @findex gnus-jog-cache | 5018 @findex gnus-jog-cache |
5022 So where does the massive article-fetching and storing come into the | 5019 So where does the massive article-fetching and storing come into the |
5329 means that Gnus will look at the articles it saves for an | 5326 means that Gnus will look at the articles it saves for an |
5330 @code{Archive-name} line and use that as a suggestion for the file | 5327 @code{Archive-name} line and use that as a suggestion for the file |
5331 name. | 5328 name. |
5332 | 5329 |
5333 Here's an example function to clean up file names somewhat. If you have | 5330 Here's an example function to clean up file names somewhat. If you have |
5334 lots of mail groups that are called things like | 5331 lots of mail groups called things like |
5335 @samp{nnml:mail.whatever}, you may want to chop off the beginning of | 5332 @samp{nnml:mail.whatever}, you may want to chop off the beginning of |
5336 these group names before creating the file name to save to. The | 5333 these group names before creating the file name to save to. The |
5337 following will do just that: | 5334 following will do just that: |
5338 | 5335 |
5339 @lisp | 5336 @lisp |
5368 If you'd like to save articles in a hierarchy that looks something like | 5365 If you'd like to save articles in a hierarchy that looks something like |
5369 a spool, you could | 5366 a spool, you could |
5370 | 5367 |
5371 @lisp | 5368 @lisp |
5372 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy | 5369 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy |
5373 (setq gnus-default-article-save 'gnus-summary-save-in-file) ; no encoding | 5370 (setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding |
5374 @end lisp | 5371 @end lisp |
5375 | 5372 |
5376 Then just save with @kbd{o}. You'd then read this hierarchy with | 5373 Then just save with @kbd{o}. You'd then read this hierarchy with |
5377 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and | 5374 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and |
5378 the toplevel directory as the argument (@file{~/News/}). Then just walk | 5375 the toplevel directory as the argument (@file{~/News/}). Then just walk |
6795 @item B M-C-e | 6792 @item B M-C-e |
6796 @kindex B M-C-e (Summary) | 6793 @kindex B M-C-e (Summary) |
6797 @findex gnus-summary-expire-articles-now | 6794 @findex gnus-summary-expire-articles-now |
6798 Delete all the expirable articles in the group | 6795 Delete all the expirable articles in the group |
6799 (@code{gnus-summary-expire-articles-now}). This means that @strong{all} | 6796 (@code{gnus-summary-expire-articles-now}). This means that @strong{all} |
6800 articles that are eligible for expiry in the current group will | 6797 articles eligible for expiry in the current group will |
6801 disappear forever into that big @file{/dev/null} in the sky. | 6798 disappear forever into that big @file{/dev/null} in the sky. |
6802 | 6799 |
6803 @item B DEL | 6800 @item B DEL |
6804 @kindex B DEL (Summary) | 6801 @kindex B DEL (Summary) |
6805 @findex gnus-summary-delete-article | 6802 @findex gnus-summary-delete-article |
7375 | 7372 |
7376 @lisp | 7373 @lisp |
7377 (setq gnus-visible-headers "^From:\\|^Subject:") | 7374 (setq gnus-visible-headers "^From:\\|^Subject:") |
7378 @end lisp | 7375 @end lisp |
7379 | 7376 |
7380 This variable can also be a list of regexps to match headers that are to | 7377 This variable can also be a list of regexps to match headers to |
7381 remain visible. | 7378 remain visible. |
7382 | 7379 |
7383 @item gnus-ignored-headers | 7380 @item gnus-ignored-headers |
7384 @vindex gnus-ignored-headers | 7381 @vindex gnus-ignored-headers |
7385 This variable is the reverse of @code{gnus-visible-headers}. If this | 7382 This variable is the reverse of @code{gnus-visible-headers}. If this |
7392 | 7389 |
7393 @lisp | 7390 @lisp |
7394 (setq gnus-ignored-headers "^References:\\|^Xref:") | 7391 (setq gnus-ignored-headers "^References:\\|^Xref:") |
7395 @end lisp | 7392 @end lisp |
7396 | 7393 |
7397 This variable can also be a list of regexps to match headers that are to | 7394 This variable can also be a list of regexps to match headers to |
7398 be removed. | 7395 be removed. |
7399 | 7396 |
7400 Note that if @code{gnus-visible-headers} is non-@code{nil}, this | 7397 Note that if @code{gnus-visible-headers} is non-@code{nil}, this |
7401 variable will have no effect. | 7398 variable will have no effect. |
7402 | 7399 |
7414 @lisp | 7411 @lisp |
7415 (setq gnus-sorted-header-list '("^From:" "^Subject:")) | 7412 (setq gnus-sorted-header-list '("^From:" "^Subject:")) |
7416 @end lisp | 7413 @end lisp |
7417 | 7414 |
7418 Any headers that are to remain visible, but are not listed in this | 7415 Any headers that are to remain visible, but are not listed in this |
7419 variable, will be displayed in random order after all the headers that | 7416 variable, will be displayed in random order after all the headers listed in this variable. |
7420 are listed in this variable. | |
7421 | 7417 |
7422 @findex gnus-article-hide-boring-headers | 7418 @findex gnus-article-hide-boring-headers |
7423 @vindex gnus-article-display-hook | 7419 @vindex gnus-article-display-hook |
7424 @vindex gnus-boring-article-headers | 7420 @vindex gnus-boring-article-headers |
7425 You can hide further boring headers by entering | 7421 You can hide further boring headers by entering |
7753 | 7749 |
7754 | 7750 |
7755 @node Mail and Post | 7751 @node Mail and Post |
7756 @section Mail and Post | 7752 @section Mail and Post |
7757 | 7753 |
7758 Here's a list of variables that are relevant to both mailing and | 7754 Here's a list of variables relevant to both mailing and |
7759 posting: | 7755 posting: |
7760 | 7756 |
7761 @table @code | 7757 @table @code |
7762 @item gnus-mailing-list-groups | 7758 @item gnus-mailing-list-groups |
7763 @findex gnus-mailing-list-groups | 7759 @findex gnus-mailing-list-groups |
8080 @node Select Methods | 8076 @node Select Methods |
8081 @chapter Select Methods | 8077 @chapter Select Methods |
8082 @cindex foreign groups | 8078 @cindex foreign groups |
8083 @cindex select methods | 8079 @cindex select methods |
8084 | 8080 |
8085 A @dfn{foreign group} is a group that is not read by the usual (or | 8081 A @dfn{foreign group} is a group not read by the usual (or |
8086 default) means. It could be, for instance, a group from a different | 8082 default) means. It could be, for instance, a group from a different |
8087 @sc{nntp} server, it could be a virtual group, or it could be your own | 8083 @sc{nntp} server, it could be a virtual group, or it could be your own |
8088 personal mail group. | 8084 personal mail group. |
8089 | 8085 |
8090 A foreign group (or any group, really) is specified by a @dfn{name} and | 8086 A foreign group (or any group, really) is specified by a @dfn{name} and |
8138 hangs if queried for @sc{nov} headers and has a buggy select. Ahem. | 8134 hangs if queried for @sc{nov} headers and has a buggy select. Ahem. |
8139 Anyways, if you had to specify that for each group that used this | 8135 Anyways, if you had to specify that for each group that used this |
8140 server, that would be too much work, so Gnus offers a way of naming | 8136 server, that would be too much work, so Gnus offers a way of naming |
8141 select methods, which is what you do in the server buffer. | 8137 select methods, which is what you do in the server buffer. |
8142 | 8138 |
8143 To enter the server buffer, user the @kbd{^} | 8139 To enter the server buffer, use the @kbd{^} |
8144 (@code{gnus-group-enter-server-mode}) command in the group buffer. | 8140 (@code{gnus-group-enter-server-mode}) command in the group buffer. |
8145 | 8141 |
8146 @menu | 8142 @menu |
8147 * Server Buffer Format:: You can customize the look of this buffer. | 8143 * Server Buffer Format:: You can customize the look of this buffer. |
8148 * Server Commands:: Commands to manipulate servers. | 8144 * Server Commands:: Commands to manipulate servers. |
8294 variables are relevant, but here's an @code{nnmh} example: | 8290 variables are relevant, but here's an @code{nnmh} example: |
8295 | 8291 |
8296 @code{nnmh} is a mail backend that reads a spool-like structure. Say | 8292 @code{nnmh} is a mail backend that reads a spool-like structure. Say |
8297 you have two structures that you wish to access: One is your private | 8293 you have two structures that you wish to access: One is your private |
8298 mail spool, and the other is a public one. Here's the possible spec for | 8294 mail spool, and the other is a public one. Here's the possible spec for |
8299 you private mail: | 8295 your private mail: |
8300 | 8296 |
8301 @lisp | 8297 @lisp |
8302 (nnmh "private" (nnmh-directory "~/private/mail/")) | 8298 (nnmh "private" (nnmh-directory "~/private/mail/")) |
8303 @end lisp | 8299 @end lisp |
8304 | 8300 |
8692 | 8688 |
8693 @item nntp-xover-commands | 8689 @item nntp-xover-commands |
8694 @vindex nntp-xover-commands | 8690 @vindex nntp-xover-commands |
8695 @cindex nov | 8691 @cindex nov |
8696 @cindex XOVER | 8692 @cindex XOVER |
8697 List of strings that are used as commands to fetch @sc{nov} lines from a | 8693 List of strings used as commands to fetch @sc{nov} lines from a |
8698 server. The default value of this variable is @code{("XOVER" | 8694 server. The default value of this variable is @code{("XOVER" |
8699 "XOVERVIEW")}. | 8695 "XOVERVIEW")}. |
8700 | 8696 |
8701 @item nntp-nov-gap | 8697 @item nntp-nov-gap |
8702 @vindex nntp-nov-gap | 8698 @vindex nntp-nov-gap |
9172 | 9168 |
9173 @vindex nnmail-split-abbrev-alist | 9169 @vindex nnmail-split-abbrev-alist |
9174 @var{FIELD} and @var{VALUE} can also be lisp symbols, in that case they | 9170 @var{FIELD} and @var{VALUE} can also be lisp symbols, in that case they |
9175 are expanded as specified by the variable | 9171 are expanded as specified by the variable |
9176 @code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where | 9172 @code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where |
9177 the car of a cell contains the key, and the cdr contains the associated | 9173 the @code{car} of a cell contains the key, and the @code{cdr} contains the associated |
9178 value. | 9174 value. |
9179 | 9175 |
9180 @vindex nnmail-split-fancy-syntax-table | 9176 @vindex nnmail-split-fancy-syntax-table |
9181 @code{nnmail-split-fancy-syntax-table} is the syntax table in effect | 9177 @code{nnmail-split-fancy-syntax-table} is the syntax table in effect |
9182 when all this splitting is performed. | 9178 when all this splitting is performed. |
9341 | 9337 |
9342 @vindex gnus-auto-expirable-newsgroups | 9338 @vindex gnus-auto-expirable-newsgroups |
9343 You do not have to mark articles as expirable by hand. Groups that | 9339 You do not have to mark articles as expirable by hand. Groups that |
9344 match the regular expression @code{gnus-auto-expirable-newsgroups} will | 9340 match the regular expression @code{gnus-auto-expirable-newsgroups} will |
9345 have all articles that you read marked as expirable automatically. All | 9341 have all articles that you read marked as expirable automatically. All |
9346 articles that are marked as expirable have an @samp{E} in the first | 9342 articles marked as expirable have an @samp{E} in the first |
9347 column in the summary buffer. | 9343 column in the summary buffer. |
9348 | 9344 |
9349 By default, if you have auto expiry switched on, Gnus will mark all the | 9345 By default, if you have auto expiry switched on, Gnus will mark all the |
9350 articles you read as expirable, no matter if they were read or unread | 9346 articles you read as expirable, no matter if they were read or unread |
9351 before. To avoid having articles marked as read marked as expirable | 9347 before. To avoid having articles marked as read marked as expirable |
9358 'gnus-summary-mark-read-and-unread-as-read) | 9354 'gnus-summary-mark-read-and-unread-as-read) |
9359 (add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read) | 9355 (add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read) |
9360 @end lisp | 9356 @end lisp |
9361 | 9357 |
9362 Note that making a group auto-expirable doesn't mean that all read | 9358 Note that making a group auto-expirable doesn't mean that all read |
9363 articles are expired---only the articles that are marked as expirable | 9359 articles are expired---only the articles marked as expirable |
9364 will be expired. Also note that using the @kbd{d} command won't make | 9360 will be expired. Also note that using the @kbd{d} command won't make |
9365 groups expirable---only semi-automatic marking of articles as read will | 9361 groups expirable---only semi-automatic marking of articles as read will |
9366 mark the articles as expirable in auto-expirable groups. | 9362 mark the articles as expirable in auto-expirable groups. |
9367 | 9363 |
9368 Let's say you subscribe to a couple of mailing lists, and you want the | 9364 Let's say you subscribe to a couple of mailing lists, and you want the |
9852 | 9848 |
9853 If you have a directory that has lots of articles in separate files in | 9849 If you have a directory that has lots of articles in separate files in |
9854 it, you might treat it as a newsgroup. The files have to have numerical | 9850 it, you might treat it as a newsgroup. The files have to have numerical |
9855 names, of course. | 9851 names, of course. |
9856 | 9852 |
9857 This might be an opportune moment to mention @code{ange-ftp}, that most | 9853 This might be an opportune moment to mention @code{ange-ftp} (and its |
9858 wonderful of all wonderful Emacs packages. When I wrote @code{nndir}, I | 9854 successor @code{ecf}), that most wonderful of all wonderful Emacs |
9859 didn't think much about it---a backend to read directories. Big deal. | 9855 packages. When I wrote @code{nndir}, I didn't think much about it---a |
9856 backend to read directories. Big deal. | |
9860 | 9857 |
9861 @code{ange-ftp} changes that picture dramatically. For instance, if you | 9858 @code{ange-ftp} changes that picture dramatically. For instance, if you |
9862 enter the @code{ange-ftp} file name | 9859 enter the @code{ange-ftp} file name |
9863 @file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name, | 9860 @file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name, |
9864 @code{ange-ftp} or @code{efs} will actually allow you to read this directory over at | 9861 @code{ange-ftp} or @code{efs} will actually allow you to read this |
9865 @samp{sina} as a newsgroup. Distributed news ahoy! | 9862 directory over at @samp{sina} as a newsgroup. Distributed news ahoy! |
9866 | 9863 |
9867 @code{nndir} will use @sc{nov} files if they are present. | 9864 @code{nndir} will use @sc{nov} files if they are present. |
9868 | 9865 |
9869 @code{nndir} is a ``read-only'' backend---you can't delete or expire | 9866 @code{nndir} is a ``read-only'' backend---you can't delete or expire |
9870 articles with this method. You can use @code{nnmh} or @code{nnml} for | 9867 articles with this method. You can use @code{nnmh} or @code{nnml} for |
10621 end up in this one, and there should be no duplicates. Threading (and | 10618 end up in this one, and there should be no duplicates. Threading (and |
10622 the rest) will still work as usual, but there might be problems with the | 10619 the rest) will still work as usual, but there might be problems with the |
10623 sequence of articles. Sorting on date might be an option here | 10620 sequence of articles. Sorting on date might be an option here |
10624 (@pxref{Selecting a Group}). | 10621 (@pxref{Selecting a Group}). |
10625 | 10622 |
10626 One limitation, however---all groups that are included in a virtual | 10623 One limitation, however---all groups included in a virtual |
10627 group have to be alive (i.e., subscribed or unsubscribed). Killed or | 10624 group have to be alive (i.e., subscribed or unsubscribed). Killed or |
10628 zombie groups can't be component groups for @code{nnvirtual} groups. | 10625 zombie groups can't be component groups for @code{nnvirtual} groups. |
10629 | 10626 |
10630 @vindex nnvirtual-always-rescan | 10627 @vindex nnvirtual-always-rescan |
10631 If the @code{nnvirtual-always-rescan} is non-@code{nil}, | 10628 If the @code{nnvirtual-always-rescan} is non-@code{nil}, |
10685 @code{nnkiboze-directory}, which is @file{~/News/} by default. One | 10682 @code{nnkiboze-directory}, which is @file{~/News/} by default. One |
10686 contains the @sc{nov} header lines for all the articles in the group, | 10683 contains the @sc{nov} header lines for all the articles in the group, |
10687 and the other is an additional @file{.newsrc} file to store information | 10684 and the other is an additional @file{.newsrc} file to store information |
10688 on what groups have been searched through to find component articles. | 10685 on what groups have been searched through to find component articles. |
10689 | 10686 |
10690 Articles that are marked as read in the @code{nnkiboze} group will have | 10687 Articles marked as read in the @code{nnkiboze} group will have |
10691 their @sc{nov} lines removed from the @sc{nov} file. | 10688 their @sc{nov} lines removed from the @sc{nov} file. |
10692 | 10689 |
10693 | 10690 |
10694 @node Scoring | 10691 @node Scoring |
10695 @chapter Scoring | 10692 @chapter Scoring |
11030 @item gnus-score-uncacheable-files | 11027 @item gnus-score-uncacheable-files |
11031 @vindex gnus-score-uncacheable-files | 11028 @vindex gnus-score-uncacheable-files |
11032 @cindex score cache | 11029 @cindex score cache |
11033 All score files are normally cached to avoid excessive re-loading of | 11030 All score files are normally cached to avoid excessive re-loading of |
11034 score files. However, if this might make you Emacs grow big and | 11031 score files. However, if this might make you Emacs grow big and |
11035 bloated, so this regexp can be used to weed out score files that are | 11032 bloated, so this regexp can be used to weed out score files unlikely to be needed again. It would be a bad idea to deny caching of |
11036 unlikely to be needed again. It would be a bad idea to deny caching of | |
11037 @file{all.SCORE}, while it might be a good idea to not cache | 11033 @file{all.SCORE}, while it might be a good idea to not cache |
11038 @file{comp.infosystems.www.authoring.misc.ADAPT}. In fact, this | 11034 @file{comp.infosystems.www.authoring.misc.ADAPT}. In fact, this |
11039 variable is @samp{ADAPT$} by default, so no adaptive score files will | 11035 variable is @samp{ADAPT$} by default, so no adaptive score files will |
11040 be cached. | 11036 be cached. |
11041 | 11037 |
11260 | 11256 |
11261 @cindex ISO8601 | 11257 @cindex ISO8601 |
11262 @cindex date | 11258 @cindex date |
11263 A more useful match type is @code{regexp}. With it, you can match the | 11259 A more useful match type is @code{regexp}. With it, you can match the |
11264 date string using a regular expression. The date is normalized to | 11260 date string using a regular expression. The date is normalized to |
11265 ISO8601 compact format first---@samp{YYYYMMDDTHHMMSS}. If you want to | 11261 ISO8601 compact format first---@var{YYYYMMDD}@code{T}@var{HHMMSS}. If |
11266 match all articles that have been posted on April 1st in every year, you | 11262 you want to match all articles that have been posted on April 1st in |
11267 could use @samp{....0401.........} as a match string, for instance. | 11263 every year, you could use @samp{....0401.........} as a match string, |
11268 (Note that the date is kept in its original time zone, so this will | 11264 for instance. (Note that the date is kept in its original time zone, so |
11269 match articles that were posted when it was April 1st where the article | 11265 this will match articles that were posted when it was April 1st where |
11270 was posted from. Time zones are such wholesome fun for the whole | 11266 the article was posted from. Time zones are such wholesome fun for the |
11271 family, eh?) | 11267 whole family, eh?) |
11272 | 11268 |
11273 @item Head, Body, All | 11269 @item Head, Body, All |
11274 These three match keys use the same match types as the @code{From} (etc) | 11270 These three match keys use the same match types as the @code{From} (etc) |
11275 header uses. | 11271 header uses. |
11276 | 11272 |
11284 uses. (Using this match key will lead to creation of @file{ADAPT} | 11280 uses. (Using this match key will lead to creation of @file{ADAPT} |
11285 files.) | 11281 files.) |
11286 | 11282 |
11287 @item Thread | 11283 @item Thread |
11288 This match key works along the same lines as the @code{Followup} match | 11284 This match key works along the same lines as the @code{Followup} match |
11289 key. If you say that you want to score on a (sub-)thread that is | 11285 key. If you say that you want to score on a (sub-)thread started by an article with a @code{Message-ID} @var{X}, then you add a |
11290 started by an article with a @code{Message-ID} @var{X}, then you add a | |
11291 @samp{thread} match. This will add a new @samp{thread} match for each | 11286 @samp{thread} match. This will add a new @samp{thread} match for each |
11292 article that has @var{X} in its @code{References} header. (These new | 11287 article that has @var{X} in its @code{References} header. (These new |
11293 @samp{thread} matches will use the @code{Message-ID}s of these matching | 11288 @samp{thread} matches will use the @code{Message-ID}s of these matching |
11294 articles.) This will ensure that you can raise/lower the score of an | 11289 articles.) This will ensure that you can raise/lower the score of an |
11295 entire thread, even though some articles in the thread may not have | 11290 entire thread, even though some articles in the thread may not have |
11297 undeterministic scores of the articles in the thread. (Using this match | 11292 undeterministic scores of the articles in the thread. (Using this match |
11298 key will lead to creation of @file{ADAPT} files.) | 11293 key will lead to creation of @file{ADAPT} files.) |
11299 @end table | 11294 @end table |
11300 @end enumerate | 11295 @end enumerate |
11301 | 11296 |
11297 @cindex Score File Atoms | |
11302 @item mark | 11298 @item mark |
11303 The value of this entry should be a number. Any articles with a score | 11299 The value of this entry should be a number. Any articles with a score |
11304 lower than this number will be marked as read. | 11300 lower than this number will be marked as read. |
11305 | 11301 |
11306 @item expunge | 11302 @item expunge |
11550 (,gnus-killed-mark . -20) | 11546 (,gnus-killed-mark . -20) |
11551 (,gnus-del-mark . -15))) | 11547 (,gnus-del-mark . -15))) |
11552 @end lisp | 11548 @end lisp |
11553 | 11549 |
11554 This is the default value. If you have adaption on words enabled, every | 11550 This is the default value. If you have adaption on words enabled, every |
11555 word that appears in subjects of articles that are marked with | 11551 word that appears in subjects of articles marked with |
11556 @code{gnus-read-mark} will result in a score rule that increase the | 11552 @code{gnus-read-mark} will result in a score rule that increase the |
11557 score with 30 points. | 11553 score with 30 points. |
11558 | 11554 |
11559 @vindex gnus-default-ignored-adaptive-words | 11555 @vindex gnus-default-ignored-adaptive-words |
11560 @vindex gnus-ignored-adaptive-words | 11556 @vindex gnus-ignored-adaptive-words |
11830 head: | 11826 head: |
11831 | 11827 |
11832 @itemize @bullet | 11828 @itemize @bullet |
11833 | 11829 |
11834 @item | 11830 @item |
11835 Articles that are heavily crossposted are probably junk. | 11831 Articles heavily crossposted are probably junk. |
11836 @item | 11832 @item |
11837 To lower a single inappropriate article, lower by @code{Message-ID}. | 11833 To lower a single inappropriate article, lower by @code{Message-ID}. |
11838 @item | 11834 @item |
11839 Particularly brilliant authors can be raised on a permanent basis. | 11835 Particularly brilliant authors can be raised on a permanent basis. |
11840 @item | 11836 @item |
11879 (gnus-kill "From" "Lars Ingebrigtsen") | 11875 (gnus-kill "From" "Lars Ingebrigtsen") |
11880 (gnus-kill "Subject" "ding") | 11876 (gnus-kill "Subject" "ding") |
11881 (gnus-expunge "X") | 11877 (gnus-expunge "X") |
11882 @end lisp | 11878 @end lisp |
11883 | 11879 |
11884 This will mark every article written by me as read, and remove them from | 11880 This will mark every article written by me as read, and remove the |
11885 the summary buffer. Very useful, you'll agree. | 11881 marked articles from the summary buffer. Very useful, you'll agree. |
11886 | 11882 |
11887 Other programs use a totally different kill file syntax. If Gnus | 11883 Other programs use a totally different kill file syntax. If Gnus |
11888 encounters what looks like a @code{rn} kill file, it will take a stab at | 11884 encounters what looks like a @code{rn} kill file, it will take a stab at |
11889 interpreting it. | 11885 interpreting it. |
11890 | 11886 |
11925 @vindex gnus-kill-file-name | 11921 @vindex gnus-kill-file-name |
11926 A kill file for the group @samp{soc.motss} is normally called | 11922 A kill file for the group @samp{soc.motss} is normally called |
11927 @file{soc.motss.KILL}. The suffix appended to the group name to get | 11923 @file{soc.motss.KILL}. The suffix appended to the group name to get |
11928 this file name is detailed by the @code{gnus-kill-file-name} variable. | 11924 this file name is detailed by the @code{gnus-kill-file-name} variable. |
11929 The ``global'' kill file (not in the score file sense of ``global'', of | 11925 The ``global'' kill file (not in the score file sense of ``global'', of |
11930 course) is called just @file{KILL}. | 11926 course) is just called @file{KILL}. |
11931 | 11927 |
11932 @vindex gnus-kill-save-kill-file | 11928 @vindex gnus-kill-save-kill-file |
11933 @item gnus-kill-save-kill-file | 11929 @item gnus-kill-save-kill-file |
11934 If this variable is non-@code{nil}, Gnus will save the | 11930 If this variable is non-@code{nil}, Gnus will save the |
11935 kill file after processing, which is necessary if you use expiring | 11931 kill file after processing, which is necessary if you use expiring |
11983 To accomplish this the GroupLens system combines your opinions about | 11979 To accomplish this the GroupLens system combines your opinions about |
11984 articles you have already read with the opinions of others who have done | 11980 articles you have already read with the opinions of others who have done |
11985 likewise and gives you a personalized prediction for each unread news | 11981 likewise and gives you a personalized prediction for each unread news |
11986 article. Think of GroupLens as a matchmaker. GroupLens watches how you | 11982 article. Think of GroupLens as a matchmaker. GroupLens watches how you |
11987 rate articles, and finds other people that rate articles the same way. | 11983 rate articles, and finds other people that rate articles the same way. |
11988 Once it has found for you some people you agree with it tells you, in | 11984 Once it has found some people you agree with it tells you, in the form |
11989 the form of a prediction, what they thought of the article. You can use | 11985 of a prediction, what they thought of the article. You can use this |
11990 this prediction to help you decide whether or not you want to read the | 11986 prediction to help you decide whether or not you want to read the |
11991 article. | 11987 article. |
11992 | 11988 |
11993 @menu | 11989 @menu |
11994 * Using GroupLens:: How to make Gnus use GroupLens. | 11990 * Using GroupLens:: How to make Gnus use GroupLens. |
11995 * Rating Articles:: Letting GroupLens know how you rate articles. | 11991 * Rating Articles:: Letting GroupLens know how you rate articles. |
12002 @subsection Using GroupLens | 11998 @subsection Using GroupLens |
12003 | 11999 |
12004 To use GroupLens you must register a pseudonym with your local Better | 12000 To use GroupLens you must register a pseudonym with your local Better |
12005 Bit Bureau (BBB). | 12001 Bit Bureau (BBB). |
12006 @samp{http://www.cs.umn.edu/Research/GroupLens/bbb.html} is the only | 12002 @samp{http://www.cs.umn.edu/Research/GroupLens/bbb.html} is the only |
12007 better bit in town is at the moment. | 12003 better bit in town at the moment. |
12008 | 12004 |
12009 Once you have registered you'll need to set a couple of variables. | 12005 Once you have registered you'll need to set a couple of variables. |
12010 | 12006 |
12011 @table @code | 12007 @table @code |
12012 | 12008 |
12024 @vindex grouplens-newsgroups | 12020 @vindex grouplens-newsgroups |
12025 A list of groups that you want to get GroupLens predictions for. | 12021 A list of groups that you want to get GroupLens predictions for. |
12026 | 12022 |
12027 @end table | 12023 @end table |
12028 | 12024 |
12029 Thats the minimum of what you need to get up and running with GroupLens. | 12025 That's the minimum of what you need to get up and running with GroupLens. |
12030 Once you've registered, GroupLens will start giving you scores for | 12026 Once you've registered, GroupLens will start giving you scores for |
12031 articles based on the average of what other people think. But, to get | 12027 articles based on the average of what other people think. But, to get |
12032 the real benefit of GroupLens you need to start rating articles | 12028 the real benefit of GroupLens you need to start rating articles |
12033 yourself. Then the scores GroupLens gives you will be personalized for | 12029 yourself. Then the scores GroupLens gives you will be personalized for |
12034 you, based on how the people you usually agree with have already rated. | 12030 you, based on how the people you usually agree with have already rated. |
12131 | 12127 |
12132 @item prediction-num | 12128 @item prediction-num |
12133 Plain-old numeric value. | 12129 Plain-old numeric value. |
12134 | 12130 |
12135 @item confidence-plus-minus | 12131 @item confidence-plus-minus |
12136 Prediction +/i confidence. | 12132 Prediction +/- confidence. |
12137 | 12133 |
12138 @end table | 12134 @end table |
12139 | 12135 |
12140 | 12136 |
12141 @node GroupLens Variables | 12137 @node GroupLens Variables |
12142 @subsection GroupLens Variables | 12138 @subsection GroupLens Variables |
12143 | 12139 |
12144 @table @code | 12140 @table @code |
12145 | 12141 |
12146 @item gnus-summary-grouplens-line-format | 12142 @item gnus-summary-grouplens-line-format |
12147 The summary line format used in summary buffers that are GroupLens | 12143 The summary line format used in GroupLens-enhanced summary buffers. It |
12148 enhanced. It accepts the same specs as the normal summary line format | 12144 accepts the same specs as the normal summary line format (@pxref{Summary |
12149 (@pxref{Summary Buffer Lines}). The default is | 12145 Buffer Lines}). The default is @samp{%U%R%z%l%I%(%[%4L: %-20,20n%]%) |
12150 @samp{%U%R%z%l%I%(%[%4L: %-20,20n%]%) %s\n}. | 12146 %s\n}. |
12151 | 12147 |
12152 @item grouplens-bbb-host | 12148 @item grouplens-bbb-host |
12153 Host running the bbbd server. @samp{grouplens.cs.umn.edu} is the | 12149 Host running the bbbd server. @samp{grouplens.cs.umn.edu} is the |
12154 default. | 12150 default. |
12155 | 12151 |
12171 @node Advanced Scoring | 12167 @node Advanced Scoring |
12172 @section Advanced Scoring | 12168 @section Advanced Scoring |
12173 | 12169 |
12174 Scoring on Subjects and From headers is nice enough, but what if you're | 12170 Scoring on Subjects and From headers is nice enough, but what if you're |
12175 really interested in what a person has to say only when she's talking | 12171 really interested in what a person has to say only when she's talking |
12176 about a particular subject? Or what about if you really don't want to | 12172 about a particular subject? Or what if you really don't want to |
12177 read what person A has to say when she's following up to person B, but | 12173 read what person A has to say when she's following up to person B, but |
12178 want to read what she says when she's following up to person C? | 12174 want to read what she says when she's following up to person C? |
12179 | 12175 |
12180 By using advanced scoring rules you may create arbitrarily complex | 12176 By using advanced scoring rules you may create arbitrarily complex |
12181 scoring patterns. | 12177 scoring patterns. |
12216 | 12212 |
12217 @item ! | 12213 @item ! |
12218 @itemx not | 12214 @itemx not |
12219 @itemx ¬ | 12215 @itemx ¬ |
12220 This logical operator only takes a single argument. It returns the | 12216 This logical operator only takes a single argument. It returns the |
12221 inverse of the value of its argument. | 12217 logical negation of the value of its argument. |
12222 | 12218 |
12223 @end table | 12219 @end table |
12224 | 12220 |
12225 There is an @dfn{indirection operator} that will make its arguments | 12221 There is an @dfn{indirection operator} that will make its arguments |
12226 apply to the ancestors of the current article being scored. For | 12222 apply to the ancestors of the current article being scored. For |
12227 instance, @code{1-} will make score rules apply to the parent of the | 12223 instance, @code{1-} will make score rules apply to the parent of the |
12228 current article. @code{2-} will make score fules apply to the | 12224 current article. @code{2-} will make score rules apply to the |
12229 grandparent of the current article. Alternatively, you can write | 12225 grandparent of the current article. Alternatively, you can write |
12230 @code{^^}, where the number of @code{^}s (carets) say how far back into | 12226 @code{^^}, where the number of @code{^}s (carets) says how far back into |
12231 the ancestry you want to go. | 12227 the ancestry you want to go. |
12232 | 12228 |
12233 Finally, we have the match operators. These are the ones that do the | 12229 Finally, we have the match operators. These are the ones that do the |
12234 real work. Match operators are header name strings followed by a match | 12230 real work. Match operators are header name strings followed by a match |
12235 and a match type. A typical match operator looks like @samp{("from" | 12231 and a match type. A typical match operator looks like @samp{("from" |
12298 The @code{&} and @code{|} logical operators do short-circuit logic. | 12294 The @code{&} and @code{|} logical operators do short-circuit logic. |
12299 That is, they stop processing their arguments when it's clear what the | 12295 That is, they stop processing their arguments when it's clear what the |
12300 result of the operation will be. For instance, if one of the arguments | 12296 result of the operation will be. For instance, if one of the arguments |
12301 of an @code{&} evaluates to @code{false}, there's no point in evaluating | 12297 of an @code{&} evaluates to @code{false}, there's no point in evaluating |
12302 the rest of the arguments. This means that you should put slow matches | 12298 the rest of the arguments. This means that you should put slow matches |
12303 (@samp{body}, @code{header}) last and quick matches (@samp{from}, | 12299 (@samp{body}, @samp{header}) last and quick matches (@samp{from}, |
12304 @samp{subject}) first. | 12300 @samp{subject}) first. |
12305 | 12301 |
12306 The indirection arguments (@code{1-} and so on) will make their | 12302 The indirection arguments (@code{1-} and so on) will make their |
12307 arguments work on previous generations of the thread. If you say | 12303 arguments work on previous generations of the thread. If you say |
12308 something like: | 12304 something like: |
12421 @cindex process/prefix convention | 12417 @cindex process/prefix convention |
12422 | 12418 |
12423 Many functions, among them functions for moving, decoding and saving | 12419 Many functions, among them functions for moving, decoding and saving |
12424 articles, use what is known as the @dfn{Process/Prefix convention}. | 12420 articles, use what is known as the @dfn{Process/Prefix convention}. |
12425 | 12421 |
12426 This is a method for figuring out what articles that the user wants the | 12422 This is a method for figuring out what articles the user wants the |
12427 command to be performed on. | 12423 command to be performed on. |
12428 | 12424 |
12429 It goes like this: | 12425 It goes like this: |
12430 | 12426 |
12431 If the numeric prefix is N, perform the operation on the next N | 12427 If the numeric prefix is N, perform the operation on the next N |
12436 @vindex transient-mark-mode | 12432 @vindex transient-mark-mode |
12437 If @code{transient-mark-mode} in non-@code{nil} and the region is | 12433 If @code{transient-mark-mode} in non-@code{nil} and the region is |
12438 active, all articles in the region will be worked upon. | 12434 active, all articles in the region will be worked upon. |
12439 | 12435 |
12440 If there is no numeric prefix, but some articles are marked with the | 12436 If there is no numeric prefix, but some articles are marked with the |
12441 process mark, perform the operation on the articles that are marked with | 12437 process mark, perform the operation on the articles marked with |
12442 the process mark. | 12438 the process mark. |
12443 | 12439 |
12444 If there is neither a numeric prefix nor any articles marked with the | 12440 If there is neither a numeric prefix nor any articles marked with the |
12445 process mark, just perform the operation on the current article. | 12441 process mark, just perform the operation on the current article. |
12446 | 12442 |
12496 | 12492 |
12497 @node Formatting Variables | 12493 @node Formatting Variables |
12498 @section Formatting Variables | 12494 @section Formatting Variables |
12499 @cindex formatting variables | 12495 @cindex formatting variables |
12500 | 12496 |
12501 Throughout this manual you've probably noticed lots of variables that | 12497 Throughout this manual you've probably noticed lots of variables called things like @code{gnus-group-line-format} and |
12502 are called things like @code{gnus-group-line-format} and | |
12503 @code{gnus-summary-mode-line-format}. These control how Gnus is to | 12498 @code{gnus-summary-mode-line-format}. These control how Gnus is to |
12504 output lines in the various buffers. There's quite a lot of them. | 12499 output lines in the various buffers. There's quite a lot of them. |
12505 Fortunately, they all use the same syntax, so there's not that much to | 12500 Fortunately, they all use the same syntax, so there's not that much to |
12506 be annoyed by. | 12501 be annoyed by. |
12507 | 12502 |
12646 highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer | 12641 highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer |
12647 over it. | 12642 over it. |
12648 | 12643 |
12649 Text inside the @samp{%[} and @samp{%]} specifiers will have their | 12644 Text inside the @samp{%[} and @samp{%]} specifiers will have their |
12650 normal faces set using @code{gnus-face-0}, which is @code{bold} by | 12645 normal faces set using @code{gnus-face-0}, which is @code{bold} by |
12651 default. If you say @samp{%1[} instead, you'll get @code{gnus-face-1} | 12646 default. If you say @samp{%1[}, you'll get @code{gnus-face-1} instead, |
12652 instead, and so on. Create as many faces as you wish. The same goes | 12647 and so on. Create as many faces as you wish. The same goes for the |
12653 for the @code{mouse-face} specs---you can say @samp{%3(hello%)} to have | 12648 @code{mouse-face} specs---you can say @samp{%3(hello%)} to have |
12654 @samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}. | 12649 @samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}. |
12655 | 12650 |
12656 Here's an alternative recipe for the group buffer: | 12651 Here's an alternative recipe for the group buffer: |
12657 | 12652 |
12658 @lisp | 12653 @lisp |
12965 (if column-number-mode 4 0) | 12960 (if column-number-mode 4 0) |
12966 (length display-time-string))))) | 12961 (length display-time-string))))) |
12967 @end lisp | 12962 @end lisp |
12968 | 12963 |
12969 If this variable is @code{nil} (which is the default), the mode line | 12964 If this variable is @code{nil} (which is the default), the mode line |
12970 strings won't be chopped off, and they won't be padded either. | 12965 strings won't be chopped off, and they won't be padded either. Note |
12971 Note that the default is unlikely to be desirable, as even the | 12966 that the default is unlikely to be desirable, as even the percentage |
12972 percentage complete in the buffer may be crowded off the mode line; | 12967 complete in the buffer may be crowded off the mode line; the user should |
12973 the user should configure this variable appropriately for their | 12968 configure this variable appropriately for her configuration. |
12974 configuration. | |
12975 | 12969 |
12976 | 12970 |
12977 @node Highlighting and Menus | 12971 @node Highlighting and Menus |
12978 @section Highlighting and Menus | 12972 @section Highlighting and Menus |
12979 @cindex visual | 12973 @cindex visual |
12980 @cindex highlighting | 12974 @cindex highlighting |
12981 @cindex menus | 12975 @cindex menus |
12982 | 12976 |
12983 @vindex gnus-visual | 12977 @vindex gnus-visual |
12984 The @code{gnus-visual} variable controls most of the prettifying Gnus | 12978 The @code{gnus-visual} variable controls most of the Gnus-prettifying |
12985 aspects. If @code{nil}, Gnus won't attempt to create menus or use fancy | 12979 aspects. If @code{nil}, Gnus won't attempt to create menus or use fancy |
12986 colors or fonts. This will also inhibit loading the @file{gnus-vis.el} | 12980 colors or fonts. This will also inhibit loading the @file{gnus-vis.el} |
12987 file. | 12981 file. |
12988 | 12982 |
12989 This variable can be a list of visual properties that are enabled. The | 12983 This variable can be a list of visual properties that are enabled. The |
13019 | 13013 |
13020 @lisp | 13014 @lisp |
13021 (setq gnus-visual '(article-highlight menu)) | 13015 (setq gnus-visual '(article-highlight menu)) |
13022 @end lisp | 13016 @end lisp |
13023 | 13017 |
13024 If you want only highlighting and no menus whatsoever, you'd say: | 13018 If you want highlighting only and no menus whatsoever, you'd say: |
13025 | 13019 |
13026 @lisp | 13020 @lisp |
13027 (setq gnus-visual '(highlight)) | 13021 (setq gnus-visual '(highlight)) |
13028 @end lisp | 13022 @end lisp |
13029 | 13023 |
13121 @vindex gnus-carpal-browse-buffer-buttons | 13115 @vindex gnus-carpal-browse-buffer-buttons |
13122 Buttons in the browse buffer. | 13116 Buttons in the browse buffer. |
13123 @end table | 13117 @end table |
13124 | 13118 |
13125 All the @code{buttons} variables are lists. The elements in these list | 13119 All the @code{buttons} variables are lists. The elements in these list |
13126 is either a cons cell where the car contains a text to be displayed and | 13120 are either cons cells where the @code{car} contains a text to be displayed and |
13127 the cdr contains a function symbol, or a simple string. | 13121 the @code{cdr} contains a function symbol, or a simple string. |
13128 | 13122 |
13129 | 13123 |
13130 @node Daemons | 13124 @node Daemons |
13131 @section Daemons | 13125 @section Daemons |
13132 @cindex demons | 13126 @cindex demons |
13197 @findex gnus-demon-add-nocem | 13191 @findex gnus-demon-add-nocem |
13198 @findex gnus-demon-add-scanmail | 13192 @findex gnus-demon-add-scanmail |
13199 @findex gnus-demon-add-rescan | 13193 @findex gnus-demon-add-rescan |
13200 @findex gnus-demon-add-scan-timestamps | 13194 @findex gnus-demon-add-scan-timestamps |
13201 @findex gnus-demon-add-disconnection | 13195 @findex gnus-demon-add-disconnection |
13202 Some ready-made functions to do this has been created: | 13196 Some ready-made functions to do this have been created: |
13203 @code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection}, | 13197 @code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection}, |
13204 @code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and | 13198 @code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and |
13205 @code{gnus-demon-add-scanmail}. Just put those functions in your | 13199 @code{gnus-demon-add-scanmail}. Just put those functions in your |
13206 @file{.gnus} if you want those abilities. | 13200 @file{.gnus} if you want those abilities. |
13207 | 13201 |
13388 | 13382 |
13389 | 13383 |
13390 @node Picon Requirements | 13384 @node Picon Requirements |
13391 @subsection Picon Requirements | 13385 @subsection Picon Requirements |
13392 | 13386 |
13393 To use have Gnus display Picons for you, you must be running XEmacs | 13387 To have Gnus display Picons for you, you must be running XEmacs |
13394 19.13 or greater since all other versions of Emacs aren't yet able to | 13388 19.13 or greater since all other versions of Emacs aren't yet able to |
13395 display images. | 13389 display images. |
13396 | 13390 |
13397 Additionally, you must have @code{xpm} support compiled into XEmacs. | 13391 Additionally, you must have @code{xpm} support compiled into XEmacs. |
13398 | 13392 |
13462 @vindex gnus-article-display-hook | 13456 @vindex gnus-article-display-hook |
13463 @vindex gnus-picons-display-where | 13457 @vindex gnus-picons-display-where |
13464 @table @code | 13458 @table @code |
13465 @item gnus-article-display-picons | 13459 @item gnus-article-display-picons |
13466 @findex gnus-article-display-picons | 13460 @findex gnus-article-display-picons |
13467 Looks up and display the picons for the author and the author's domain | 13461 Looks up and displays the picons for the author and the author's domain |
13468 in the @code{gnus-picons-display-where} buffer. Should be added to | 13462 in the @code{gnus-picons-display-where} buffer. Should be added to the |
13469 the @code{gnus-article-display-hook}. | 13463 @code{gnus-article-display-hook}. |
13470 | 13464 |
13471 @item gnus-group-display-picons | 13465 @item gnus-group-display-picons |
13472 @findex gnus-article-display-picons | 13466 @findex gnus-article-display-picons |
13473 Displays picons representing the current group. This function should | 13467 Displays picons representing the current group. This function should |
13474 be added to the @code{gnus-summary-prepare-hook} or to the | 13468 be added to the @code{gnus-summary-prepare-hook} or to the |
13481 should be added to @code{gnus-article-display-hook}. | 13475 should be added to @code{gnus-article-display-hook}. |
13482 | 13476 |
13483 @end table | 13477 @end table |
13484 | 13478 |
13485 Note: You must append them to the hook, so make sure to specify 't' | 13479 Note: You must append them to the hook, so make sure to specify 't' |
13486 to the append flag of @code{add-hook}: | 13480 for the append flag of @code{add-hook}: |
13487 | 13481 |
13488 @lisp | 13482 @lisp |
13489 (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t) | 13483 (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t) |
13490 @end lisp | 13484 @end lisp |
13491 | 13485 |
13510 newsgroups. | 13504 newsgroups. |
13511 | 13505 |
13512 @item gnus-picons-user-directories | 13506 @item gnus-picons-user-directories |
13513 @vindex gnus-picons-user-directories | 13507 @vindex gnus-picons-user-directories |
13514 List of subdirectories to search in @code{gnus-picons-database} for user | 13508 List of subdirectories to search in @code{gnus-picons-database} for user |
13515 faces. @code{("local" "users" "usenix" "misc/MISC")} is the default. | 13509 faces. @code{("local" "users" "usenix" "misc")} is the default. |
13516 | 13510 |
13517 @item gnus-picons-domain-directories | 13511 @item gnus-picons-domain-directories |
13518 @vindex gnus-picons-domain-directories | 13512 @vindex gnus-picons-domain-directories |
13519 List of subdirectories to search in @code{gnus-picons-database} for | 13513 List of subdirectories to search in @code{gnus-picons-database} for |
13520 domain name faces. Defaults to @code{("domains")}. Some people may | 13514 domain name faces. Defaults to @code{("domains")}. Some people may |
13547 It is very useful to be able to undo actions one has done. In normal | 13541 It is very useful to be able to undo actions one has done. In normal |
13548 Emacs buffers, it's easy enough---you just push the @code{undo} button. | 13542 Emacs buffers, it's easy enough---you just push the @code{undo} button. |
13549 In Gnus buffers, however, it isn't that simple. | 13543 In Gnus buffers, however, it isn't that simple. |
13550 | 13544 |
13551 The things Gnus displays in its buffer is of no value whatsoever to | 13545 The things Gnus displays in its buffer is of no value whatsoever to |
13552 Gnus---it's all just data that is designed to look nice to the user. | 13546 Gnus---it's all just data designed to look nice to the user. |
13553 Killing a group in the group buffer with @kbd{C-k} makes the line | 13547 Killing a group in the group buffer with @kbd{C-k} makes the line |
13554 disappear, but that's just a side-effect of the real action---the | 13548 disappear, but that's just a side-effect of the real action---the |
13555 removal of the group in question from the internal Gnus structures. | 13549 removal of the group in question from the internal Gnus structures. |
13556 Undoing something like that can't be done by the normal Emacs | 13550 Undoing something like that can't be done by the normal Emacs |
13557 @code{undo} function. | 13551 @code{undo} function. |
13593 (add-hook 'gnus-summary-mode-hook 'gnus-moderate) | 13587 (add-hook 'gnus-summary-mode-hook 'gnus-moderate) |
13594 @end lisp | 13588 @end lisp |
13595 | 13589 |
13596 in your @file{.gnus.el} file. | 13590 in your @file{.gnus.el} file. |
13597 | 13591 |
13598 If you are the moderation of @samp{rec.zoofle}, this is how it's | 13592 If you are the moderator of @samp{rec.zoofle}, this is how it's |
13599 supposed to work: | 13593 supposed to work: |
13600 | 13594 |
13601 @enumerate | 13595 @enumerate |
13602 @item | 13596 @item |
13603 You split your incoming mail by matching on | 13597 You split your incoming mail by matching on |
13709 perhaps be a bigger menace than the unsolicited commercial email itself | 13703 perhaps be a bigger menace than the unsolicited commercial email itself |
13710 in the end. | 13704 in the end. |
13711 | 13705 |
13712 The biggest problem I have with email spam is that it comes in under | 13706 The biggest problem I have with email spam is that it comes in under |
13713 false pretenses. I press @kbd{g} and Gnus merrily informs me that I | 13707 false pretenses. I press @kbd{g} and Gnus merrily informs me that I |
13714 have 10 new emails. I say ``Golly gee! Happy is me!'' and selects the | 13708 have 10 new emails. I say ``Golly gee! Happy is me!'' and select the |
13715 mail group, only to find two pyramid schemes, seven advertisements | 13709 mail group, only to find two pyramid schemes, seven advertisements |
13716 (``New! Miracle tonic for growing full, lustrouos hair on your toes!'') | 13710 (``New! Miracle tonic for growing full, lustrouos hair on your toes!'') |
13717 and one mail asking me to repent and find some god. | 13711 and one mail asking me to repent and find some god. |
13718 | 13712 |
13719 This is annoying. | 13713 This is annoying. |
13830 the absolute max length the backends will try to read before giving up | 13824 the absolute max length the backends will try to read before giving up |
13831 on finding a separator line between the head and the body. If this | 13825 on finding a separator line between the head and the body. If this |
13832 variable is @code{nil}, there is no upper read bound. If it is | 13826 variable is @code{nil}, there is no upper read bound. If it is |
13833 @code{t}, the backends won't try to read the articles piece by piece, | 13827 @code{t}, the backends won't try to read the articles piece by piece, |
13834 but read the entire articles. This makes sense with some versions of | 13828 but read the entire articles. This makes sense with some versions of |
13835 @code{ange-ftp}. | 13829 @code{ange-ftp} or @code{efs}. |
13836 | 13830 |
13837 @item nnheader-head-chop-length | 13831 @item nnheader-head-chop-length |
13838 @vindex nnheader-head-chop-length | 13832 @vindex nnheader-head-chop-length |
13839 This variable says how big a piece of each article to read when doing | 13833 This variable (default 2048) says how big a piece of each article to |
13840 the operation described above. | 13834 read when doing the operation described above. |
13841 | 13835 |
13842 @item nnheader-file-name-translation-alist | 13836 @item nnheader-file-name-translation-alist |
13843 @vindex nnheader-file-name-translation-alist | 13837 @vindex nnheader-file-name-translation-alist |
13844 @cindex file names | 13838 @cindex file names |
13845 @cindex illegal characters in file names | 13839 @cindex illegal characters in file names |
13868 gather statistics on the headers fetched, or perhaps you'd like to prune | 13862 gather statistics on the headers fetched, or perhaps you'd like to prune |
13869 some headers. I don't see why you'd want that, though. | 13863 some headers. I don't see why you'd want that, though. |
13870 | 13864 |
13871 @item gnus-shell-command-separator | 13865 @item gnus-shell-command-separator |
13872 @vindex gnus-shell-command-separator | 13866 @vindex gnus-shell-command-separator |
13873 String used to separate to shell commands. The default is @samp{;}. | 13867 String used to separate two shell commands. The default is @samp{;}. |
13874 | 13868 |
13875 | 13869 |
13876 @end table | 13870 @end table |
13877 | 13871 |
13878 | 13872 |
13953 releases)) was released under the name ``Gnus 5.2'' (40 releases). | 13947 releases)) was released under the name ``Gnus 5.2'' (40 releases). |
13954 | 13948 |
13955 On July 28th 1996 work on Red Gnus was begun, and it was released on | 13949 On July 28th 1996 work on Red Gnus was begun, and it was released on |
13956 January 25th 1997 (after 84 releases) as ``Gnus 5.4''. | 13950 January 25th 1997 (after 84 releases) as ``Gnus 5.4''. |
13957 | 13951 |
13958 If you happen upon a version of Gnus that has a name that is prefixed -- | 13952 If you happen upon a version of Gnus that has a prefixed name -- |
13959 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- | 13953 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- |
13960 don't panic. Don't let it know that you're frightened. Back away. | 13954 don't panic. Don't let it know that you're frightened. Back away. |
13961 Slowly. Whatever you do, don't run. Walk away, calmly, until you're | 13955 Slowly. Whatever you do, don't run. Walk away, calmly, until you're |
13962 out of its reach. Find a proper released version of Gnus and snuggle up | 13956 out of its reach. Find a proper released version of Gnus and snuggle up |
13963 to that instead. | 13957 to that instead. |
13992 like to see Gnus being used as a testing ground for new methods of | 13986 like to see Gnus being used as a testing ground for new methods of |
13993 reading and fetching news. Expanding on @sc{Umeda}-san's wise decision | 13987 reading and fetching news. Expanding on @sc{Umeda}-san's wise decision |
13994 to separate the newsreader from the backends, Gnus now offers a simple | 13988 to separate the newsreader from the backends, Gnus now offers a simple |
13995 interface for anybody who wants to write new backends for fetching mail | 13989 interface for anybody who wants to write new backends for fetching mail |
13996 and news from different sources. I have added hooks for customizations | 13990 and news from different sources. I have added hooks for customizations |
13997 everywhere I could imagine useful. By doing so, I'm inviting every one | 13991 everywhere I could imagine it being useful. By doing so, I'm inviting |
13998 of you to explore and invent. | 13992 every one of you to explore and invent. |
13999 | 13993 |
14000 May Gnus never be complete. @kbd{C-u 100 M-x hail-emacs}. | 13994 May Gnus never be complete. @kbd{C-u 100 M-x all-hail-emacs} and |
13995 @kbd{C-u 100 M-x all-hail-xemacs}. | |
14001 | 13996 |
14002 | 13997 |
14003 @node Compatibility | 13998 @node Compatibility |
14004 @subsection Compatibility | 13999 @subsection Compatibility |
14005 | 14000 |
14016 @end quotation | 14011 @end quotation |
14017 | 14012 |
14018 All commands have kept their names. Some internal functions have changed | 14013 All commands have kept their names. Some internal functions have changed |
14019 their names. | 14014 their names. |
14020 | 14015 |
14021 The @code{gnus-uu} package has changed drastically. @pxref{Decoding | 14016 The @code{gnus-uu} package has changed drastically. @xref{Decoding |
14022 Articles}. | 14017 Articles}. |
14023 | 14018 |
14024 One major compatibility question is the presence of several summary | 14019 One major compatibility question is the presence of several summary |
14025 buffers. All variables that are relevant while reading a group are | 14020 buffers. All variables relevant while reading a group are |
14026 buffer-local to the summary buffer they belong in. Although many | 14021 buffer-local to the summary buffer they belong in. Although many |
14027 important variables have their values copied into their global | 14022 important variables have their values copied into their global |
14028 counterparts whenever a command is executed in the summary buffer, this | 14023 counterparts whenever a command is executed in the summary buffer, this |
14029 change might lead to incorrect values being used unless you are careful. | 14024 change might lead to incorrect values being used unless you are careful. |
14030 | 14025 |
14106 for the @code{X-Newsreader} header. | 14101 for the @code{X-Newsreader} header. |
14107 @end table | 14102 @end table |
14108 | 14103 |
14109 @end table | 14104 @end table |
14110 | 14105 |
14111 If you ever notice Gnus acting non-compliantly with regards to the texts | 14106 If you ever notice Gnus acting non-compliant with regards to the texts |
14112 mentioned above, don't hesitate to drop a note to Gnus Towers and let us | 14107 mentioned above, don't hesitate to drop a note to Gnus Towers and let us |
14113 know. | 14108 know. |
14114 | 14109 |
14115 | 14110 |
14116 @node Emacsen | 14111 @node Emacsen |
14222 | 14217 |
14223 @item | 14218 @item |
14224 David Moore---rewrite of @file{nnvirtual.el} and many other things. | 14219 David Moore---rewrite of @file{nnvirtual.el} and many other things. |
14225 | 14220 |
14226 @item | 14221 @item |
14227 Ricardo Nassif, Mark Borges, and Jost Krieger---proof-reading. | |
14228 | |
14229 @item | |
14230 Kevin Davidson---came up with the name @dfn{ding}, so blame him. | 14222 Kevin Davidson---came up with the name @dfn{ding}, so blame him. |
14231 | 14223 |
14232 @item | 14224 @item |
14233 François Pinard---many, many interesting and thorough bug reports. | 14225 François Pinard---many, many interesting and thorough bug reports. |
14234 | 14226 |
14235 @end itemize | 14227 @end itemize |
14228 | |
14229 This manual was proof-read by Adrian Aichner, with Ricardo Nassif, Mark | |
14230 Borges, and Jost Krieger proof-reading parts of the manual. | |
14236 | 14231 |
14237 The following people have contributed many patches and suggestions: | 14232 The following people have contributed many patches and suggestions: |
14238 | 14233 |
14239 Christopher Davis, | 14234 Christopher Davis, |
14240 Andrew Eskilsson, | 14235 Andrew Eskilsson, |
14454 @item | 14449 @item |
14455 You can browse foreign servers and subscribe to groups from those | 14450 You can browse foreign servers and subscribe to groups from those |
14456 servers (@pxref{Browse Foreign Server}). | 14451 servers (@pxref{Browse Foreign Server}). |
14457 | 14452 |
14458 @item | 14453 @item |
14459 Gnus can fetch articles asynchronously on a second connection to the | 14454 Gnus can fetch articles, asynchronously, on a second connection to the |
14460 server (@pxref{Asynchronous Fetching}). | 14455 server (@pxref{Asynchronous Fetching}). |
14461 | 14456 |
14462 @item | 14457 @item |
14463 You can cache articles locally (@pxref{Article Caching}). | 14458 You can cache articles locally (@pxref{Article Caching}). |
14464 | 14459 |
14534 | 14529 |
14535 @item | 14530 @item |
14536 Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}). | 14531 Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}). |
14537 | 14532 |
14538 @item | 14533 @item |
14539 A @code{trn}-line tree buffer can be displayed (@pxref{Tree Display}). | 14534 A @code{trn}-like tree buffer can be displayed (@pxref{Tree Display}). |
14540 | 14535 |
14541 @lisp | 14536 @lisp |
14542 (setq gnus-use-trees t) | 14537 (setq gnus-use-trees t) |
14543 @end lisp | 14538 @end lisp |
14544 | 14539 |
14595 @item | 14590 @item |
14596 Groups can be sorted according to many criteria (@pxref{Sorting | 14591 Groups can be sorted according to many criteria (@pxref{Sorting |
14597 Groups}). | 14592 Groups}). |
14598 | 14593 |
14599 @item | 14594 @item |
14600 New group parameters have been introduced to set list-address and | 14595 New group parameters have been introduced to set list-addresses and |
14601 expiry times (@pxref{Group Parameters}). | 14596 expiry times (@pxref{Group Parameters}). |
14602 | 14597 |
14603 @item | 14598 @item |
14604 All formatting specs allow specifying faces to be used | 14599 All formatting specs allow specifying faces to be used |
14605 (@pxref{Formatting Fonts}). | 14600 (@pxref{Formatting Fonts}). |
14768 (setq gnus-suppress-duplicates t) | 14763 (setq gnus-suppress-duplicates t) |
14769 @end lisp | 14764 @end lisp |
14770 | 14765 |
14771 @item | 14766 @item |
14772 New variables for specifying what score and adapt files are to be | 14767 New variables for specifying what score and adapt files are to be |
14773 considered home score and adapt files (@pxref{Home Score File}). | 14768 considered home score and adapt files (@pxref{Home Score File}) have |
14769 been added. | |
14774 | 14770 |
14775 @item | 14771 @item |
14776 @code{nndoc} was rewritten to be easily extendable (@pxref{Document | 14772 @code{nndoc} was rewritten to be easily extendable (@pxref{Document |
14777 Server Internals}). | 14773 Server Internals}). |
14778 | 14774 |
14795 @item | 14791 @item |
14796 Commands for moving the @file{.newsrc.eld} from one server to | 14792 Commands for moving the @file{.newsrc.eld} from one server to |
14797 another have been added (@pxref{Changing Servers}). | 14793 another have been added (@pxref{Changing Servers}). |
14798 | 14794 |
14799 @item | 14795 @item |
14800 A way to specify that ``uninteresting'' fields be suppressed when | 14796 There's a way now to specify that ``uninteresting'' fields be suppressed |
14801 generating lines in buffers (@pxref{Advanced Formatting}). | 14797 when generating lines in buffers (@pxref{Advanced Formatting}). |
14802 | 14798 |
14803 @item | 14799 @item |
14804 Several commands in the group buffer can be undone with @kbd{M-C-_} | 14800 Several commands in the group buffer can be undone with @kbd{M-C-_} |
14805 (@pxref{Undo}). | 14801 (@pxref{Undo}). |
14806 | 14802 |
15039 The top part of a message, where administrative information (etc.) is | 15035 The top part of a message, where administrative information (etc.) is |
15040 put. | 15036 put. |
15041 | 15037 |
15042 @item body | 15038 @item body |
15043 @cindex body | 15039 @cindex body |
15044 The rest of an article. Everything that is not in the head is in the | 15040 The rest of an article. Everything not in the head is in the |
15045 body. | 15041 body. |
15046 | 15042 |
15047 @item header | 15043 @item header |
15048 @cindex header | 15044 @cindex header |
15049 A line from the head of an article. | 15045 A line from the head of an article. |
15090 server (i.e., it isn't in the active file), is a @emph{bogus group}. | 15086 server (i.e., it isn't in the active file), is a @emph{bogus group}. |
15091 This means that the group probably doesn't exist (any more). | 15087 This means that the group probably doesn't exist (any more). |
15092 | 15088 |
15093 @item server | 15089 @item server |
15094 @cindex server | 15090 @cindex server |
15095 A machine than one can connect to and get news (or mail) from. | 15091 A machine one can connect to and get news (or mail) from. |
15096 | 15092 |
15097 @item select method | 15093 @item select method |
15098 @cindex select method | 15094 @cindex select method |
15099 A structure that specifies the backend, the server and the virtual | 15095 A structure that specifies the backend, the server and the virtual |
15100 server parameters. | 15096 server parameters. |
15101 | 15097 |
15102 @item virtual server | 15098 @item virtual server |
15103 @cindex virtual server | 15099 @cindex virtual server |
15104 A named select method. Since a select methods defines all there is to | 15100 A named select method. Since a select method defines all there is to |
15105 know about connecting to a (physical) server, taking the things as a | 15101 know about connecting to a (physical) server, taking the thing as a |
15106 whole is a virtual server. | 15102 whole is a virtual server. |
15107 | 15103 |
15108 @item washing | 15104 @item washing |
15109 @cindex washing | 15105 @cindex washing |
15110 Taking a buffer and running it through a filter of some sort. The | 15106 Taking a buffer and running it through a filter of some sort. The |
15170 | 15166 |
15171 | 15167 |
15172 @node Slow Terminal Connection | 15168 @node Slow Terminal Connection |
15173 @subsection Slow Terminal Connection | 15169 @subsection Slow Terminal Connection |
15174 | 15170 |
15175 Let's say you use your home computer for dialing up the system that | 15171 Let's say you use your home computer for dialing up the system that runs |
15176 runs Emacs and Gnus. If your modem is slow, you want to reduce the | 15172 Emacs and Gnus. If your modem is slow, you want to reduce (as much as |
15177 amount of data that is sent over the wires as much as possible. | 15173 possible) the amount of data sent over the wires. |
15178 | 15174 |
15179 @table @code | 15175 @table @code |
15180 | 15176 |
15181 @item gnus-auto-center-summary | 15177 @item gnus-auto-center-summary |
15182 Set this to @code{nil} to inhibit Gnus from re-centering the summary | 15178 Set this to @code{nil} to inhibit Gnus from re-centering the summary |
15183 buffer all the time. If it is @code{vertical}, do only vertical | 15179 buffer all the time. If it is @code{vertical}, do only vertical |
15184 re-centering. If it is neither @code{nil} nor @code{vertical}, do both | 15180 re-centering. If it is neither @code{nil} nor @code{vertical}, do both |
15185 horizontal and vertical recentering. | 15181 horizontal and vertical recentering. |
15186 | 15182 |
15187 @item gnus-visible-headers | 15183 @item gnus-visible-headers |
15188 Cut down on the headers that are included in the articles to the | 15184 Cut down on the headers included in the articles to the |
15189 minimum. You can, in fact, make do without them altogether---most of the | 15185 minimum. You can, in fact, make do without them altogether---most of the |
15190 useful data is in the summary buffer, anyway. Set this variable to | 15186 useful data is in the summary buffer, anyway. Set this variable to |
15191 @samp{^NEVVVVER} or @samp{From:}, or whatever you feel you need. | 15187 @samp{^NEVVVVER} or @samp{From:}, or whatever you feel you need. |
15192 | 15188 |
15193 @item gnus-article-display-hook | 15189 @item gnus-article-display-hook |
15243 @cindex slow machine | 15239 @cindex slow machine |
15244 | 15240 |
15245 If you have a slow machine, or are just really impatient, there are a | 15241 If you have a slow machine, or are just really impatient, there are a |
15246 few things you can do to make Gnus run faster. | 15242 few things you can do to make Gnus run faster. |
15247 | 15243 |
15248 Set@code{gnus-check-new-newsgroups} and | 15244 Set @code{gnus-check-new-newsgroups} and |
15249 @code{gnus-check-bogus-newsgroups} to @code{nil} to make startup faster. | 15245 @code{gnus-check-bogus-newsgroups} to @code{nil} to make startup faster. |
15250 | 15246 |
15251 Set @code{gnus-show-threads}, @code{gnus-use-cross-reference} and | 15247 Set @code{gnus-show-threads}, @code{gnus-use-cross-reference} and |
15252 @code{gnus-nov-is-evil} to @code{nil} to make entering and exiting the | 15248 @code{gnus-nov-is-evil} to @code{nil} to make entering and exiting the |
15253 summary buffer faster. | 15249 summary buffer faster. |
15310 a 10Kb mail each time you use it, and even if you have sent me your | 15306 a 10Kb mail each time you use it, and even if you have sent me your |
15311 environment 500 times before. I don't care. I want the full info each | 15307 environment 500 times before. I don't care. I want the full info each |
15312 time. | 15308 time. |
15313 | 15309 |
15314 It is also important to remember that I have no memory whatsoever. If | 15310 It is also important to remember that I have no memory whatsoever. If |
15315 you send a bug report, and I send you a reply, and then you send back | 15311 you send a bug report, and I send you a reply, and then you just send |
15316 just ``No, it's not! Moron!'', I will have no idea what you are | 15312 back ``No, it's not! Moron!'', I will have no idea what you are |
15317 insulting me about. Always over-explain everything. It's much easier | 15313 insulting me about. Always over-explain everything. It's much easier |
15318 for all of us---if I don't have all the information I need, I will just | 15314 for all of us---if I don't have all the information I need, I will just |
15319 mail you and ask for more info, and everything takes more time. | 15315 mail you and ask for more info, and everything takes more time. |
15320 | 15316 |
15321 If the problem you're seeing is very visual, and you can't quite explain | 15317 If the problem you're seeing is very visual, and you can't quite explain |
15343 | 15339 |
15344 You can never expect the internals of a program not to change, but I | 15340 You can never expect the internals of a program not to change, but I |
15345 will be defining (in some details) the interface between Gnus and its | 15341 will be defining (in some details) the interface between Gnus and its |
15346 backends (this is written in stone), the format of the score files | 15342 backends (this is written in stone), the format of the score files |
15347 (ditto), data structures (some are less likely to change than others) | 15343 (ditto), data structures (some are less likely to change than others) |
15348 and general method of operations. | 15344 and general methods of operation. |
15349 | 15345 |
15350 @menu | 15346 @menu |
15351 * Gnus Utility Functions:: Common functions and variable to use. | 15347 * Gnus Utility Functions:: Common functions and variable to use. |
15352 * Backend Interface:: How Gnus communicates with the servers. | 15348 * Backend Interface:: How Gnus communicates with the servers. |
15353 * Score File Syntax:: A BNF definition of the score file standard. | 15349 * Score File Syntax:: A BNF definition of the score file standard. |
15390 Takes an unprefixed group name and a select method, and returns the full | 15386 Takes an unprefixed group name and a select method, and returns the full |
15391 (prefixed) Gnus group name. | 15387 (prefixed) Gnus group name. |
15392 | 15388 |
15393 @item gnus-get-info | 15389 @item gnus-get-info |
15394 @findex gnus-get-info | 15390 @findex gnus-get-info |
15395 Return the group info list for @var{group}. | 15391 Returns the group info list for @var{group}. |
15396 | 15392 |
15397 @item gnus-add-current-to-buffer-list | 15393 @item gnus-add-current-to-buffer-list |
15398 @findex gnus-add-current-to-buffer-list | 15394 @findex gnus-add-current-to-buffer-list |
15399 Add the current buffer to the list of buffers to be killed on Gnus | 15395 Adds the current buffer to the list of buffers to be killed on Gnus |
15400 exit. | 15396 exit. |
15401 | 15397 |
15402 @item gnus-continuum-version | 15398 @item gnus-continuum-version |
15403 @findex gnus-continuum-version | 15399 @findex gnus-continuum-version |
15404 Take a Gnus version string as a parameter and returns a floating point | 15400 Takes a Gnus version string as a parameter and returns a floating point |
15405 number. Earlier versions will always get a lower number than later | 15401 number. Earlier versions will always get a lower number than later |
15406 versions. | 15402 versions. |
15407 | 15403 |
15408 @item gnus-group-read-only-p | 15404 @item gnus-group-read-only-p |
15409 @findex gnus-group-read-only-p | 15405 @findex gnus-group-read-only-p |
15410 Say whether @var{group} is read-only or not. | 15406 Says whether @var{group} is read-only or not. |
15411 | 15407 |
15412 @item gnus-news-group-p | 15408 @item gnus-news-group-p |
15413 @findex gnus-news-group-p | 15409 @findex gnus-news-group-p |
15414 Say whether @var{group} came from a news backend. | 15410 Says whether @var{group} came from a news backend. |
15415 | 15411 |
15416 @item gnus-ephemeral-group-p | 15412 @item gnus-ephemeral-group-p |
15417 @findex gnus-ephemeral-group-p | 15413 @findex gnus-ephemeral-group-p |
15418 Say whether @var{group} is ephemeral or not. | 15414 Says whether @var{group} is ephemeral or not. |
15419 | 15415 |
15420 @item gnus-server-to-method | 15416 @item gnus-server-to-method |
15421 @findex gnus-server-to-method | 15417 @findex gnus-server-to-method |
15422 Return the select method corresponding to @var{server}. | 15418 Returns the select method corresponding to @var{server}. |
15423 | 15419 |
15424 @item gnus-server-equal | 15420 @item gnus-server-equal |
15425 @findex gnus-server-equal | 15421 @findex gnus-server-equal |
15426 Say whether two virtual servers are equal. | 15422 Says whether two virtual servers are equal. |
15427 | 15423 |
15428 @item gnus-group-native-p | 15424 @item gnus-group-native-p |
15429 @findex gnus-group-native-p | 15425 @findex gnus-group-native-p |
15430 Say whether @var{group} is native or not. | 15426 Says whether @var{group} is native or not. |
15431 | 15427 |
15432 @item gnus-group-secondary-p | 15428 @item gnus-group-secondary-p |
15433 @findex gnus-group-secondary-p | 15429 @findex gnus-group-secondary-p |
15434 Say whether @var{group} is secondary or not. | 15430 Says whether @var{group} is secondary or not. |
15435 | 15431 |
15436 @item gnus-group-foreign-p | 15432 @item gnus-group-foreign-p |
15437 @findex gnus-group-foreign-p | 15433 @findex gnus-group-foreign-p |
15438 Say whether @var{group} is foreign or not. | 15434 Says whether @var{group} is foreign or not. |
15439 | 15435 |
15440 @item group-group-find-parameter | 15436 @item group-group-find-parameter |
15441 @findex group-group-find-parameter | 15437 @findex group-group-find-parameter |
15442 Return the parameter list of @var{group}. If given a second parameter, | 15438 Returns the parameter list of @var{group}. If given a second parameter, |
15443 return the value of that parameter for @var{group}. | 15439 returns the value of that parameter for @var{group}. |
15444 | 15440 |
15445 @item gnus-group-set-parameter | 15441 @item gnus-group-set-parameter |
15446 @findex gnus-group-set-parameter | 15442 @findex gnus-group-set-parameter |
15447 Takes three parameters; @var{group}, @var{parameter} and @var{value}. | 15443 Takes three parameters; @var{group}, @var{parameter} and @var{value}. |
15448 | 15444 |
15449 @item gnus-narrow-to-body | 15445 @item gnus-narrow-to-body |
15450 @findex gnus-narrow-to-body | 15446 @findex gnus-narrow-to-body |
15451 Narrow the current buffer to the body of the article. | 15447 Narrows the current buffer to the body of the article. |
15452 | 15448 |
15453 @item gnus-check-backend-function | 15449 @item gnus-check-backend-function |
15454 @findex gnus-check-backend-function | 15450 @findex gnus-check-backend-function |
15455 Takes two parameters, @var{function} and @var{group}. If the backend | 15451 Takes two parameters, @var{function} and @var{group}. If the backend |
15456 @var{group} comes from supports @var{function}, return non-@code{nil}. | 15452 @var{group} comes from supports @var{function}, return non-@code{nil}. |
15460 => t | 15456 => t |
15461 @end lisp | 15457 @end lisp |
15462 | 15458 |
15463 @item gnus-read-method | 15459 @item gnus-read-method |
15464 @findex gnus-read-method | 15460 @findex gnus-read-method |
15465 Prompt the user for a select method. | 15461 Prompts the user for a select method. |
15466 | 15462 |
15467 @end table | 15463 @end table |
15468 | 15464 |
15469 | 15465 |
15470 @node Backend Interface | 15466 @node Backend Interface |
15496 Here the virtual server name is @samp{odd-one} while the name of | 15492 Here the virtual server name is @samp{odd-one} while the name of |
15497 the physical server is @samp{ifi.uio.no}. | 15493 the physical server is @samp{ifi.uio.no}. |
15498 | 15494 |
15499 The backends should be able to switch between several virtual servers. | 15495 The backends should be able to switch between several virtual servers. |
15500 The standard backends implement this by keeping an alist of virtual | 15496 The standard backends implement this by keeping an alist of virtual |
15501 server environments that it pulls down/pushes up when needed. | 15497 server environments that they pull down/pushe up when needed. |
15502 | 15498 |
15503 There are two groups of interface functions: @dfn{required functions}, | 15499 There are two groups of interface functions: @dfn{required functions}, |
15504 which must be present, and @dfn{optional functions}, which Gnus will | 15500 which must be present, and @dfn{optional functions}, which Gnus will |
15505 always check whether are present before attempting to call. | 15501 always check for presence before attempting to call 'em. |
15506 | 15502 |
15507 All these functions are expected to return data in the buffer | 15503 All these functions are expected to return data in the buffer |
15508 @code{nntp-server-buffer} (@samp{ *nntpd*}), which is somewhat | 15504 @code{nntp-server-buffer} (@samp{ *nntpd*}), which is somewhat |
15509 unfortunately named, but we'll have to live with it. When I talk about | 15505 unfortunately named, but we'll have to live with it. When I talk about |
15510 @dfn{resulting data}, I always refer to the data in that buffer. When I | 15506 @dfn{resulting data}, I always refer to the data in that buffer. When I |
15511 talk about @dfn{return value}, I talk about the function value returned by | 15507 talk about @dfn{return value}, I talk about the function value returned by |
15512 the function call. Functions that fail should return @code{nil} as the | 15508 the function call. Functions that fail should return @code{nil} as the |
15513 return value. | 15509 return value. |
15514 | 15510 |
15515 Some backends could be said to be @dfn{server-forming} backends, and | 15511 Some backends could be said to be @dfn{server-forming} backends, and |
15516 some might be said to not be. The latter are backends that generally | 15512 some might be said not to be. The latter are backends that generally |
15517 only operate on one group at a time, and have no concept of ``server'' | 15513 only operate on one group at a time, and have no concept of ``server'' |
15518 -- they have a group, and they deliver info on that group and nothing | 15514 -- they have a group, and they deliver info on that group and nothing |
15519 more. | 15515 more. |
15520 | 15516 |
15521 In the examples and definitions I will refer to the imaginary backend | 15517 In the examples and definitions I will refer to the imaginary backend |
15548 The result data should either be HEADs or NOV lines, and the result | 15544 The result data should either be HEADs or NOV lines, and the result |
15549 value should either be @code{headers} or @code{nov} to reflect this. | 15545 value should either be @code{headers} or @code{nov} to reflect this. |
15550 This might later be expanded to @code{various}, which will be a mixture | 15546 This might later be expanded to @code{various}, which will be a mixture |
15551 of HEADs and NOV lines, but this is currently not supported by Gnus. | 15547 of HEADs and NOV lines, but this is currently not supported by Gnus. |
15552 | 15548 |
15553 If @var{fetch-old} is non-@code{nil} it says to try to fetch "extra | 15549 If @var{fetch-old} is non-@code{nil} it says to try fetching "extra |
15554 headers, in some meaning of the word. This is generally done by | 15550 headers", in some meaning of the word. This is generally done by |
15555 fetching (at most) @var{fetch-old} extra headers less than the smallest | 15551 fetching (at most) @var{fetch-old} extra headers less than the smallest |
15556 article number in @code{articles}, and fill in the gaps as well. The | 15552 article number in @code{articles}, and filling the gaps as well. The |
15557 presence of this parameter can be ignored if the backend finds it | 15553 presence of this parameter can be ignored if the backend finds it |
15558 cumbersome to follow the request. If this is non-@code{nil} and not a | 15554 cumbersome to follow the request. If this is non-@code{nil} and not a |
15559 number, do maximum fetches. | 15555 number, do maximum fetches. |
15560 | 15556 |
15561 Here's an example HEAD: | 15557 Here's an example HEAD: |
15597 nov-buffer = *nov-line | 15593 nov-buffer = *nov-line |
15598 nov-line = 8*9 [ field <TAB> ] eol | 15594 nov-line = 8*9 [ field <TAB> ] eol |
15599 field = <text except TAB> | 15595 field = <text except TAB> |
15600 @end example | 15596 @end example |
15601 | 15597 |
15602 For a closer explanation what should be in those fields, | 15598 For a closer look at what should be in those fields, |
15603 @pxref{Headers}. | 15599 @pxref{Headers}. |
15604 | 15600 |
15605 | 15601 |
15606 @item (nnchoke-open-server SERVER &optional DEFINITIONS) | 15602 @item (nnchoke-open-server SERVER &optional DEFINITIONS) |
15607 | 15603 |
15608 @var{server} is here the virtual server name. @var{definitions} is a | 15604 @var{server} is here the virtual server name. @var{definitions} is a |
15609 list of @code{(VARIABLE VALUE)} pairs that defines this virtual server. | 15605 list of @code{(VARIABLE VALUE)} pairs that define this virtual server. |
15610 | 15606 |
15611 If the server can't be opened, no error should be signaled. The backend | 15607 If the server can't be opened, no error should be signaled. The backend |
15612 may then choose to refuse further attempts at connecting to this | 15608 may then choose to refuse further attempts at connecting to this |
15613 server. In fact, it should do so. | 15609 server. In fact, it should do so. |
15614 | 15610 |
15638 @item (nnchoke-server-opened &optional SERVER) | 15634 @item (nnchoke-server-opened &optional SERVER) |
15639 | 15635 |
15640 If @var{server} is the current virtual server, and the connection to the | 15636 If @var{server} is the current virtual server, and the connection to the |
15641 physical server is alive, then this function should return a | 15637 physical server is alive, then this function should return a |
15642 non-@code{nil} vlue. This function should under no circumstances | 15638 non-@code{nil} vlue. This function should under no circumstances |
15643 attempt to reconnect to a server that is has lost connection to. | 15639 attempt to reconnect to a server we have lost connection to. |
15644 | 15640 |
15645 There should be no data returned. | 15641 There should be no data returned. |
15646 | 15642 |
15647 | 15643 |
15648 @item (nnchoke-status-message &optional SERVER) | 15644 @item (nnchoke-status-message &optional SERVER) |
15660 it would be nice if that were possible. | 15656 it would be nice if that were possible. |
15661 | 15657 |
15662 If @var{to-buffer} is non-@code{nil}, the result data should be returned | 15658 If @var{to-buffer} is non-@code{nil}, the result data should be returned |
15663 in this buffer instead of the normal data buffer. This is to make it | 15659 in this buffer instead of the normal data buffer. This is to make it |
15664 possible to avoid copying large amounts of data from one buffer to | 15660 possible to avoid copying large amounts of data from one buffer to |
15665 another, and Gnus mainly request articles to be inserted directly into | 15661 another, while Gnus mainly requests articles to be inserted directly |
15666 its article buffer. | 15662 into its article buffer. |
15667 | 15663 |
15668 If it is at all possible, this function should return a cons cell where | 15664 If it is at all possible, this function should return a cons cell where |
15669 the car is the group name the article was fetched from, and the cdr is | 15665 the @code{car} is the group name the article was fetched from, and the @code{cdr} is |
15670 the article number. This will enable Gnus to find out what the real | 15666 the article number. This will enable Gnus to find out what the real |
15671 group and article numbers are when fetching articles by | 15667 group and article numbers are when fetching articles by |
15672 @code{Message-ID}. If this isn't possible, @code{t} should be returned | 15668 @code{Message-ID}. If this isn't possible, @code{t} should be returned |
15673 on successful article retrievement. | 15669 on successful article retrieval. |
15674 | 15670 |
15675 | 15671 |
15676 @item (nnchoke-request-group GROUP &optional SERVER FAST) | 15672 @item (nnchoke-request-group GROUP &optional SERVER FAST) |
15677 | 15673 |
15678 Get data on @var{group}. This function also has the side effect of | 15674 Get data on @var{group}. This function also has the side effect of |
15733 flags = "n" / "y" / "m" / "x" / "j" / "=" name | 15729 flags = "n" / "y" / "m" / "x" / "j" / "=" name |
15734 @end example | 15730 @end example |
15735 | 15731 |
15736 The flag says whether the group is read-only (@samp{n}), is moderated | 15732 The flag says whether the group is read-only (@samp{n}), is moderated |
15737 (@samp{m}), is dead (@samp{x}), is aliased to some other group | 15733 (@samp{m}), is dead (@samp{x}), is aliased to some other group |
15738 (@samp{=other-group} or none of the above (@samp{y}). | 15734 (@samp{=other-group}) or none of the above (@samp{y}). |
15739 | 15735 |
15740 | 15736 |
15741 @item (nnchoke-request-post &optional SERVER) | 15737 @item (nnchoke-request-post &optional SERVER) |
15742 | 15738 |
15743 This function should post the current buffer. It might return whether | 15739 This function should post the current buffer. It might return whether |
15787 | 15783 |
15788 @item (nnchoke-request-type GROUP &optional ARTICLE) | 15784 @item (nnchoke-request-type GROUP &optional ARTICLE) |
15789 | 15785 |
15790 When the user issues commands for ``sending news'' (@kbd{F} in the | 15786 When the user issues commands for ``sending news'' (@kbd{F} in the |
15791 summary buffer, for instance), Gnus has to know whether the article the | 15787 summary buffer, for instance), Gnus has to know whether the article the |
15792 user is following up is news or mail. This function should return | 15788 user is following up on is news or mail. This function should return |
15793 @code{news} if @var{article} in @var{group} is news, @code{mail} if it | 15789 @code{news} if @var{article} in @var{group} is news, @code{mail} if it |
15794 is mail and @code{unknown} if the type can't be decided. (The | 15790 is mail and @code{unknown} if the type can't be decided. (The |
15795 @var{article} parameter is necessary in @code{nnvirtual} groups which | 15791 @var{article} parameter is necessary in @code{nnvirtual} groups which |
15796 might very well combine mail groups and news groups.) Both @var{group} | 15792 might very well combine mail groups and news groups.) Both @var{group} |
15797 and @var{article} may be @code{nil}. | 15793 and @var{article} may be @code{nil}. |
15805 function may change the mark. Gnus will use whatever this function | 15801 function may change the mark. Gnus will use whatever this function |
15806 returns as the mark for @var{article} instead of the original | 15802 returns as the mark for @var{article} instead of the original |
15807 @var{mark}. If the backend doesn't care, it must return the original | 15803 @var{mark}. If the backend doesn't care, it must return the original |
15808 @var{mark}, and not @code{nil} or any other type of garbage. | 15804 @var{mark}, and not @code{nil} or any other type of garbage. |
15809 | 15805 |
15810 The only use for this that I can see is what @code{nnvirtual} does with | 15806 The only use for this I can see is what @code{nnvirtual} does with |
15811 it---if a component group is auto-expirable, marking an article as read | 15807 it---if a component group is auto-expirable, marking an article as read |
15812 in the virtual group should result in the article being marked as | 15808 in the virtual group should result in the article being marked as |
15813 expirable. | 15809 expirable. |
15814 | 15810 |
15815 There should be no result data from this function. | 15811 There should be no result data from this function. |
15893 | 15889 |
15894 If @var{last} is @code{nil}, that means that there is a high likelihood | 15890 If @var{last} is @code{nil}, that means that there is a high likelihood |
15895 that there will be more requests issued shortly, so that allows some | 15891 that there will be more requests issued shortly, so that allows some |
15896 optimizations. | 15892 optimizations. |
15897 | 15893 |
15898 The function should return a cons where the car is the group name and | 15894 The function should return a cons where the @code{car} is the group name and |
15899 the cdr is the article number that the article was entered as. | 15895 the @code{cdr} is the article number that the article was entered as. |
15900 | 15896 |
15901 There should be no data returned. | 15897 There should be no data returned. |
15902 | 15898 |
15903 | 15899 |
15904 @item (nnchoke-request-accept-article GROUP &optional SERVER LAST) | 15900 @item (nnchoke-request-accept-article GROUP &optional SERVER LAST) |
15905 | 15901 |
15906 This function takes the current buffer and inserts it into @var{group}. | 15902 This function takes the current buffer and inserts it into @var{group}. |
15907 If @var{last} in @code{nil}, that means that there will be more calls to | 15903 If @var{last} in @code{nil}, that means that there will be more calls to |
15908 this function in short order. | 15904 this function in short order. |
15909 | 15905 |
15910 The function should return a cons where the car is the group name and | 15906 The function should return a cons where the @code{car} is the group name and |
15911 the cdr is the article number that the article was entered as. | 15907 the @code{cdr} is the article number that the article was entered as. |
15912 | 15908 |
15913 There should be no data returned. | 15909 There should be no data returned. |
15914 | 15910 |
15915 | 15911 |
15916 @item (nnchoke-request-replace-article ARTICLE GROUP BUFFER) | 15912 @item (nnchoke-request-replace-article ARTICLE GROUP BUFFER) |
15931 | 15927 |
15932 | 15928 |
15933 @item (nnchoke-request-rename-group GROUP NEW-NAME &optional SERVER) | 15929 @item (nnchoke-request-rename-group GROUP NEW-NAME &optional SERVER) |
15934 | 15930 |
15935 This function should rename @var{group} into @var{new-name}. All | 15931 This function should rename @var{group} into @var{new-name}. All |
15936 articles that are in @var{group} should move to @var{new-name}. | 15932 articles in @var{group} should move to @var{new-name}. |
15937 | 15933 |
15938 There should be no data returned. | 15934 There should be no data returned. |
15939 | 15935 |
15940 @end table | 15936 @end table |
15941 | 15937 |
15947 @findex nnheader-get-report | 15943 @findex nnheader-get-report |
15948 The backends should use the function @code{nnheader-report} to report | 15944 The backends should use the function @code{nnheader-report} to report |
15949 error conditions---they should not raise errors when they aren't able to | 15945 error conditions---they should not raise errors when they aren't able to |
15950 perform a request. The first argument to this function is the backend | 15946 perform a request. The first argument to this function is the backend |
15951 symbol, and the rest are interpreted as arguments to @code{format} if | 15947 symbol, and the rest are interpreted as arguments to @code{format} if |
15952 there are many of them, or just a string if there is one of them. | 15948 there are multiple of them, or just a string if there is one of them. |
15953 This function always returns @code{nil}. | 15949 This function must always returns @code{nil}. |
15954 | 15950 |
15955 @lisp | 15951 @lisp |
15956 (nnheader-report 'nnchoke "You did something totally bogus") | 15952 (nnheader-report 'nnchoke "You did something totally bogus") |
15957 | 15953 |
15958 (nnheader-report 'nnchoke "Could not request group %s" group) | 15954 (nnheader-report 'nnchoke "Could not request group %s" group) |
15961 Gnus, in turn, will call @code{nnheader-get-report} when it gets a | 15957 Gnus, in turn, will call @code{nnheader-get-report} when it gets a |
15962 @code{nil} back from a server, and this function returns the most | 15958 @code{nil} back from a server, and this function returns the most |
15963 recently reported message for the backend in question. This function | 15959 recently reported message for the backend in question. This function |
15964 takes one argument---the server symbol. | 15960 takes one argument---the server symbol. |
15965 | 15961 |
15966 Internally, these function access @var{backend}@code{-status-string}, so | 15962 Internally, these functions access @var{backend}@code{-status-string}, |
15967 the @code{nnchoke} backend will have its error message stored in | 15963 so the @code{nnchoke} backend will have its error message stored in |
15968 @code{nnchoke-status-string}. | 15964 @code{nnchoke-status-string}. |
15969 | 15965 |
15970 | 15966 |
15971 @node Writing New Backends | 15967 @node Writing New Backends |
15972 @subsubsection Writing New Backends | 15968 @subsubsection Writing New Backends |
15973 | 15969 |
15986 package called @code{nnoo}. | 15982 package called @code{nnoo}. |
15987 | 15983 |
15988 To inherit functions from other backends (and allow other backends to | 15984 To inherit functions from other backends (and allow other backends to |
15989 inherit functions from the current backend), you should use the | 15985 inherit functions from the current backend), you should use the |
15990 following macros: | 15986 following macros: |
15991 following. | |
15992 | 15987 |
15993 @table @code | 15988 @table @code |
15994 | 15989 |
15995 @item nnoo-declare | 15990 @item nnoo-declare |
15996 This macro declares the first parameter to be a child of the subsequent | 15991 This macro declares the first parameter to be a child of the subsequent |
15999 @lisp | 15994 @lisp |
16000 (nnoo-declare nndir | 15995 (nnoo-declare nndir |
16001 nnml nnmh) | 15996 nnml nnmh) |
16002 @end lisp | 15997 @end lisp |
16003 | 15998 |
16004 @code{nndir} has here declared that it intends to inherit functions from | 15999 @code{nndir} has declared here that it intends to inherit functions from |
16005 both @code{nnml} and @code{nnmh}. | 16000 both @code{nnml} and @code{nnmh}. |
16006 | 16001 |
16007 @item defvoo | 16002 @item defvoo |
16008 This macro is equivalent to @code{defvar}, but registers the variable as | 16003 This macro is equivalent to @code{defvar}, but registers the variable as |
16009 a public server variable. Most state-oriented variables should be | 16004 a public server variable. Most state-oriented variables should be |
16162 @item post | 16157 @item post |
16163 This is a newsish backend---followups should (probably) go via news. | 16158 This is a newsish backend---followups should (probably) go via news. |
16164 @item post-mail | 16159 @item post-mail |
16165 This backend supports both mail and news. | 16160 This backend supports both mail and news. |
16166 @item none | 16161 @item none |
16167 This is neither a post or mail backend---it's something completely | 16162 This is neither a post nor mail backend---it's something completely |
16168 different. | 16163 different. |
16169 @item respool | 16164 @item respool |
16170 It supports respooling---or rather, it is able to modify its source | 16165 It supports respooling---or rather, it is able to modify its source |
16171 articles and groups. | 16166 articles and groups. |
16172 @item address | 16167 @item address |
16191 (deffoo nnml-request-scan (&optional group server) | 16186 (deffoo nnml-request-scan (&optional group server) |
16192 (setq nnml-article-file-alist nil) | 16187 (setq nnml-article-file-alist nil) |
16193 (nnmail-get-new-mail 'nnml 'nnml-save-nov nnml-directory group)) | 16188 (nnmail-get-new-mail 'nnml 'nnml-save-nov nnml-directory group)) |
16194 @end lisp | 16189 @end lisp |
16195 | 16190 |
16196 It simply just calls @code{nnmail-get-new-mail} will a few parameters, | 16191 It simply calls @code{nnmail-get-new-mail} with a few parameters, |
16197 and @code{nnmail} takes care of all the moving and splitting of the | 16192 and @code{nnmail} takes care of all the moving and splitting of the |
16198 mail. | 16193 mail. |
16199 | 16194 |
16200 This function takes four parameters. | 16195 This function takes four parameters. |
16201 | 16196 |
16303 space is irrelevant. This means that formatting of the score file is | 16298 space is irrelevant. This means that formatting of the score file is |
16304 left up to the programmer---if it's simpler to just spew it all out on | 16299 left up to the programmer---if it's simpler to just spew it all out on |
16305 one looong line, then that's ok. | 16300 one looong line, then that's ok. |
16306 | 16301 |
16307 The meaning of the various atoms are explained elsewhere in this | 16302 The meaning of the various atoms are explained elsewhere in this |
16308 manual. | 16303 manual (@pxref{Score File Format}). |
16309 | 16304 |
16310 | 16305 |
16311 @node Headers | 16306 @node Headers |
16312 @subsection Headers | 16307 @subsection Headers |
16313 | 16308 |
16314 Gnus uses internally a format for storing article headers that | 16309 Internally Gnus uses a format for storing article headers that |
16315 corresponds to the @sc{nov} format in a mysterious fashion. One could | 16310 corresponds to the @sc{nov} format in a mysterious fashion. One could |
16316 almost suspect that the author looked at the @sc{nov} specification and | 16311 almost suspect that the author looked at the @sc{nov} specification and |
16317 just shamelessly @emph{stole} the entire thing, and one would be right. | 16312 just shamelessly @emph{stole} the entire thing, and one would be right. |
16318 | 16313 |
16319 @dfn{Header} is a severely overloaded term. ``Header'' is used in | 16314 @dfn{Header} is a severely overloaded term. ``Header'' is used in |
16561 This sort of thing has been done for bunches of functions. Gnus does | 16556 This sort of thing has been done for bunches of functions. Gnus does |
16562 not redefine any native Emacs functions while running under XEmacs---it | 16557 not redefine any native Emacs functions while running under XEmacs---it |
16563 does this @code{defalias} thing with Gnus equivalents instead. Cleaner | 16558 does this @code{defalias} thing with Gnus equivalents instead. Cleaner |
16564 all over. | 16559 all over. |
16565 | 16560 |
16566 In the cases when the XEmacs function interface was obviously | 16561 In the cases where the XEmacs function interface was obviously cleaner, |
16567 cleaner, I used it instead. For example @code{gnus-region-active-p} | 16562 I used it instead. For example @code{gnus-region-active-p} is an alias |
16568 is an alias for @code{region-active-p} in XEmacs, whereas in Emacs | 16563 for @code{region-active-p} in XEmacs, whereas in Emacs it is a function. |
16569 it is a function. | |
16570 | 16564 |
16571 Of course, I could have chosen XEmacs as my native platform and done | 16565 Of course, I could have chosen XEmacs as my native platform and done |
16572 mapping functions the other way around. But I didn't. The performance | 16566 mapping functions the other way around. But I didn't. The performance |
16573 hit these indirections impose on Gnus under XEmacs should be slight. | 16567 hit these indirections impose on Gnus under XEmacs should be slight. |
16574 | 16568 |
16583 | 16577 |
16584 | 16578 |
16585 @node Active File Format | 16579 @node Active File Format |
16586 @subsubsection Active File Format | 16580 @subsubsection Active File Format |
16587 | 16581 |
16588 The active file lists all groups that are available on the server in | 16582 The active file lists all groups available on the server in |
16589 question. It also lists the highest and lowest current article numbers | 16583 question. It also lists the highest and lowest current article numbers |
16590 in each group. | 16584 in each group. |
16591 | 16585 |
16592 Here's an excerpt from a typical active file: | 16586 Here's an excerpt from a typical active file: |
16593 | 16587 |
16666 (notably @code{vi}le users), and the rest of us just love the hell out | 16660 (notably @code{vi}le users), and the rest of us just love the hell out |
16667 of it. Just give up and submit. Emacs really does stand for | 16661 of it. Just give up and submit. Emacs really does stand for |
16668 ``Escape-Meta-Alt-Control-Shift'', and not ``Editing Macros'', as you | 16662 ``Escape-Meta-Alt-Control-Shift'', and not ``Editing Macros'', as you |
16669 may have heard from other disreputable sources (like the Emacs author). | 16663 may have heard from other disreputable sources (like the Emacs author). |
16670 | 16664 |
16671 The shift key is normally located near your pinky fingers, and are | 16665 The shift keys are normally located near your pinky fingers, and are |
16672 normally used to get capital letters and stuff. You probably use it all | 16666 normally used to get capital letters and stuff. You probably use it all |
16673 the time. The control key is normally marked ``CTRL'' or something like | 16667 the time. The control key is normally marked ``CTRL'' or something like |
16674 that. The meta key is, funnily enough, never marked as such on any | 16668 that. The meta key is, funnily enough, never marked as such on any |
16675 keyboards. The one I'm currently at has a key that's marked ``Alt'', | 16669 keyboard. The one I'm currently at has a key that's marked ``Alt'', |
16676 which is the meta key on this keyboard. It's usually located somewhere | 16670 which is the meta key on this keyboard. It's usually located somewhere |
16677 to the left hand side of the keyboard, usually on the bottom row. | 16671 to the left hand side of the keyboard, usually on the bottom row. |
16678 | 16672 |
16679 Now, us Emacs people doesn't say ``press the meta-control-m key'', | 16673 Now, us Emacs people don't say ``press the meta-control-m key'', |
16680 because that's just too inconvenient. We say ``press the @kbd{M-C-m} | 16674 because that's just too inconvenient. We say ``press the @kbd{M-C-m} |
16681 key''. @kbd{M-} is the prefix that means ``meta'' and ``C-'' is the | 16675 key''. @kbd{M-} is the prefix that means ``meta'' and ``C-'' is the |
16682 prefix that means ``control''. So ``press @kbd{C-k}'' means ``press | 16676 prefix that means ``control''. So ``press @kbd{C-k}'' means ``press |
16683 down the control key, and hold it down while you press @kbd{k}''. | 16677 down the control key, and hold it down while you press @kbd{k}''. |
16684 ``Press @kbd{M-C-k}'' means ``press down and hold down the meta key and | 16678 ``Press @kbd{M-C-k}'' means ``press down and hold down the meta key and |
16724 | 16718 |
16725 If you have put that thing in your @code{.emacs} file, it will be read | 16719 If you have put that thing in your @code{.emacs} file, it will be read |
16726 and @code{eval}ed (which is lisp-ese for ``run'') the next time you | 16720 and @code{eval}ed (which is lisp-ese for ``run'') the next time you |
16727 start Emacs. If you want to change the variable right away, simply say | 16721 start Emacs. If you want to change the variable right away, simply say |
16728 @kbd{C-x C-e} after the closing parenthesis. That will @code{eval} the | 16722 @kbd{C-x C-e} after the closing parenthesis. That will @code{eval} the |
16729 previous ``form'', which here is a simple @code{setq} statement. | 16723 previous ``form'', which is a simple @code{setq} statement here. |
16730 | 16724 |
16731 Go ahead---just try it, if you're located at your Emacs. After you | 16725 Go ahead---just try it, if you're located at your Emacs. After you |
16732 @kbd{C-x C-e}, you will see @samp{4} appear in the echo area, which | 16726 @kbd{C-x C-e}, you will see @samp{4} appear in the echo area, which |
16733 is the return value of the form you @code{eval}ed. | 16727 is the return value of the form you @code{eval}ed. |
16734 | 16728 |