home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / killfile-faq < prev    next >
Internet Message Format  |  1993-12-18  |  11KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!usc!howland.reston.ans.net!pipex!uunet!haven.umd.edu!umd5.umd.edu!syrinx.umd.edu!phillips
  2. From: phillips@syrinx.umd.edu (Leanne Phillips)
  3. Newsgroups: news.newusers.questions,news.software.readers,news.answers
  4. Subject: rn KILL file FAQ
  5. Supersedes: <killfile.faq_753575395@syrinx.umd.edu>
  6. Followup-To: news.newusers.questions
  7. Date: 17 Dec 1993 13:14:05 GMT
  8. Organization: University of Maryland, College Park
  9. Lines: 215
  10. Approved: news-answers-request@mit.edu
  11. Distribution: world
  12. Expires: 17 Jan 94 01:13:47 GMT
  13. Message-ID: <killfile.faq_756134027@syrinx.umd.edu>
  14. Reply-To: phillips@syrinx.umd.edu
  15. NNTP-Posting-Host: syrinx.umd.edu
  16. Originator: phillips@syrinx.umd.edu
  17. Xref: senator-bedfellow.mit.edu news.newusers.questions:20817 news.software.readers:7497 news.answers:15928
  18.  
  19. Archive-name: killfile-faq
  20. Last modified: 16 Sep 1993
  21.  
  22. Summary of changes: Corrected one misleading statement about the f: modifier.
  23.     Added a paragraph about the H: modifier of trn 3.1.
  24.  
  25. Send comments, suggestions, corrections to phillips@syrinx.umd.edu.
  26.  
  27.   Rn and trn, and other varieties of rn, have a very useful feature called
  28. the KILL file, which allows you to kill (skip over) articles that you don't
  29. want to see.  There is some support for killfiles in xrn, but the support is
  30. limited; nothing in here is guaranteed to work for xrn.  See the xrn
  31. man page.
  32.  
  33.   KILL files come in two forms:
  34.     Global: In your News directory, you will have the file KILL.
  35.     Local: In your News directory, the killfile for group foo.bar
  36.         will be foo/bar/KILL.
  37. The difference between the two is that there can be one killfile for
  38. each group (the local killfile), and that killfile affects only the
  39. particular newsgroup (foo/bar/KILL affects only foo.bar; baz/quex/KILL
  40. affects only baz.quex, etc).  The global killfile affects all newsgroups.
  41. (There's a way to change the default names of the killfiles, but it's
  42. more complicated than I want to get into here.  See the rn(1) man page.)
  43.  
  44.   Killfiles allow you to kill articles based on a number of criteria:
  45. a subject line, a general subject, articles from one poster, articles
  46. from one site, articles cross-posted from any other group, or from one
  47. other group in particular, and articles that are follow-ups to anything at
  48. all (that is, anything with the Re: in the subject line).  You can also
  49. kill articles with a particular string anywhere in the article.
  50.  
  51.   This article assumes you know how to use an editor and that you have
  52. created the directories for any local killfiles you may need.  Remember
  53. that the name of the file is KILL, not kill or Kill; caps are important.
  54.  
  55.   The general style for building a kill line is:
  56.  
  57.         /pattern/modifiers:command
  58.  
  59. Now, that is obviously not useful to know without understanding it.  The
  60. modifiers and commands are all explained in the rn man page, but here are 
  61. some useful ones:
  62.     Modifiers:
  63.        a: all, look through the entire article for the pattern
  64.        h: look through the header of the article for the pattern
  65.        f: look at only the 'From:' header (trn 3.0)
  66.        H: added in trn 3.1, this expands the f: above to any header
  67.     Commands:
  68.        m   mark as unread
  69.        j   mark as read
  70.        =   show subject line
  71. If no modifier appears before the colon, only the subject line of the
  72. article is searched.  More than one command can be performed by using
  73. the style:
  74.  
  75.         /pattern/modifier:command:command 
  76. Thus, for instance, you can use j and = together to see the exact subject
  77. lines being killed.
  78.   It doesn't matter if you use uppercase or lowercase in the pattern; the
  79. program will assume they're the same thing.  That is, "Test" and "test"
  80. used in the pattern mean exactly the same thing; only one is necessary.
  81. If you want case to matter, see the rn(1) man page, the 'c' modifier.
  82.  
  83.   The easiest way to kill a subject line is to kill it from within the
  84. newsgroup.  When the subject line comes up that you want to kill, instead
  85. of using 'n' to skip that article or 'k' to kill the subject for that 
  86. session, type 'K'.  The subject line will then be entered into your KILL
  87. file for that group.  If you want to put that line into your global KILL
  88. file, you'll have to do that yourself.  (If you don't need it in your global
  89. file, it's best not to put it there - global kill files slow down your news
  90. reading a lot.  So does using the 'a' modifier; use it sparingly.)
  91.   (I should mention here the easiest way to start editing your kill files.
  92. Typing control-k when you're being asked to pick a newsgroup to read will
  93. start you editing the global killfile; typing the same thing when you're
  94. reading a newsgroup will start up the editing with the kill file for that
  95. group.  If it doesn't exist, it will create it - including the directories
  96. necessary.  This method is particularly recommended for people creating their
  97. first kill file.)
  98.  
  99.   To kill a general subject, ie any 'test' messages, put in the pattern:
  100.             /test/:j
  101. This will kill anything with the word 'test' in the subject line.
  102.  
  103.   To kill anything that is a followup to any article, use this pattern:
  104.             /.*Re:/:j
  105. This kills anything beginning with Re:.
  106.  
  107.   To kill cross-posts from one particular group, say foo.bar, try this:
  108.  
  109.         /Newsgroups:.*[ ,]foo\.bar/h:j
  110.  
  111. This searches the header (the 'h' modifier) for any line containing the
  112. string 'Newsgroups:' (which all articles do), as well as the string
  113. 'foo.bar'.  The other elements of this line are part of the regular
  114. expression meta-language; see the ed(1) man page for more details.
  115. (Note that all of them are necessary, particularly the '\' before the
  116. '.' in foo\.bar.)
  117.  
  118.   To kill all cross-posts, from any group at all:
  119.  
  120.         /Newsgroups:.*,/h:j
  121.  
  122. If the Newsgroups: line has a ',' in it, it's a cross-post, and therefore
  123. this will find it.
  124.   Note that the above line searches the entire header, included the
  125. Subject: line, for that pattern.  So a Subject line like:
  126.         Subject: I hate the Newsgroups: line, don't you?
  127. would get killed by that pattern, because it has a 'Newsgroups:' part, and
  128. a ','.  To make it work properly, use the 'start of line' character, ^.
  129. The ^ isn't actually there when you look at the header yourself; it just
  130. means to look for the beginning of the line.  So, to kill cross-posts:
  131.  
  132.         /^Newsgroups:.*,/h:j
  133.  
  134. should be used instead.  (Use of the ^ is recommended if you know the
  135. pattern you want to catch will be at the beginning of the line; it makes
  136. searching a lot faster.)
  137.  
  138.   To kill articles from a single poster, you need to know the userid and
  139. nodename of the poster; for this example we'll use noone@anywhere.all.
  140.  
  141.         /From: *noone@anywhere\.all/h:j
  142.  
  143.   If you're using trn 3.0 (or the appropriate version of rn, which I'm
  144. not sure of; anyone?), it's even easier to kill articles from a particular
  145. someone:
  146.  
  147.         /noone@anywhere\.all/f:j
  148.  
  149.   The 'f' modifier searches only the From: header, so you don't need to
  150. say the 'From:' yourself; you also don't need to use the 'h' modifier.
  151. (This is recommended if you have it; it should be faster to get only the
  152. From: line and search it, rather than looking over the entire header.
  153. Can anyone verify this, please?)
  154.  
  155.   For articles from a particular site, just remove the 'noone' from the
  156. previous lines, and articles from the machine 'anywhere.all' will be killed.
  157. (Note again that the \ is important.)
  158.  
  159.   You can, in trn 3.1, kill anything from a specific header line, rather than
  160. using the h: modifier to search the entire header.  It looks like the subject
  161. line one, with a simple change:
  162.  
  163.        /string to junk/Hheader:j
  164.  
  165. That is, the modifier becomes 'HReferences' or 'HPath' or whatever header
  166. it is you want to search.  (Could someone verify that I have precisely
  167. the right syntax?)
  168.  
  169.   Now, after all that, you might suddenly find out that you killed articles
  170. from someone whose posts you want to read even if they write about subjects
  171. you don't want to read.  For that, you need to 'unkill' the articles by
  172. them:
  173.        /From: *name of person you want to read/h:m
  174.        /name of person you want to read/f:m
  175. So, if you suddenly decided you wanted to read noone@anywhere.all's 
  176. postings, after having deleted them above, you would add this line:
  177.  
  178.         /From: *noone@anywhere\.all/h:m
  179.  
  180. or this, again depending on your version:
  181.         /noone@anywhere\.all/f:m
  182.  
  183. The 'm' becomes useful suddenly.  You can substitute m for j any time
  184. you need to, up above.  In fact, you can kill everything in a newsgroup and
  185. only read what you want to read by using the 'm' feature, and putting this
  186. line at the top of your KILL file:
  187.  
  188.                 /^/:j
  189.  
  190.   This method has a problem, though.  Specifically, it marks even those
  191. you've already read (really read, not just marked as read) as unread.  So,
  192. there's another way to do it:
  193.             /pattern/:=:M
  194. (check the rn(1) man page for the M command).  This lists all the subjects
  195. of the new articles, and then gives those articles to the M command.  (You
  196. then have to type 'Y' after the M command has finished.)  (For more complete
  197. information, please write me, and I'll forward on to you an example that was
  198. posted by David Tamkin.)
  199.  
  200.   Finally, you can kill (or mark, of course) a particular pattern appearing
  201. anywhere in the article, as opposed to just the Subject: line or the header:
  202.  
  203.             /pattern/a:j
  204.                and
  205.             /pattern/a:m
  206.  
  207. This is useful for, for instance, killing all articles by a certain user,
  208. followups to said user's articles, and even mention of the user by userid
  209. and node, or, conversely, by marking all of those conversations as unread
  210. so you can read them if they've been killed accidentally by your other
  211. entries.
  212.  
  213.   Further information is available in the rn man page, particularly on
  214. other available commands and modifiers.  Regular expression syntax is
  215. in the ed(1) man page; the xrn man page gives information about the quirks
  216. of xrn in relation to killfiles.
  217.  
  218.   I'd like to thank Jonathan Kamens and Rich Salz in particular for their
  219. help, and everyone else who's sent in comments, criticisms, and suggestions;
  220. keep them coming, folks!
  221.  
  222. Minor administrative note to the suggestors: Several people have suggested
  223. that, in junking all of the articles and then marking only the desirable
  224. ones to read, you need to use the 'r' modifier (search read articles as
  225. well as unread).  According to the man page I read, you don't need that;
  226. if 'm' is the first command, the 'r' is assumed.  If anyone wants to test
  227. this and tell me it's wrong, please do.  But please only tell me if it's
  228. wrong; I'll assume it's right until someone tells me otherwise. :-)
  229.  
  230. Leanne Phillips
  231. "Go not unto the Elves for counsel, for they will say both yea and nay."
  232. "Now is _not_ a good time, Keiko!" - Worf, "Disaster"
  233. "Variety is the spice of life, and I don't want to die." - Scott Borst
  234.