From: phillips@syrinx.umd.edu (Leanne Phillips)
Newsgroups: news.newusers.questions,news.software.readers,news.answers
Subject: rn KILL file FAQ
Date: 7 Nov 91 06:30:41 GMT
Expires: 7 Dec 91 18:30:35 GMT
Reply-To: phillips@syrinx.umd.edu
Followup-To: news.newusers.questions
Organization: University of Maryland, College Park
Originator: phillips@syrinx.umd.edu

Archive-name: killfile-faq

Send comments, suggestions, corrections to phillips@syrinx.umd.edu.

  In rn and trn, there is a very useful feature called the KILL file,
which allows you to kill (skip over) articles that you don't want to
see.  There is some support for killfiles in xrn, but the support is
limited; nothing in here is guaranteed to work for xrn.  See the xrn
man page.

  KILL files come in two forms:
	Global: In your News directory, you will have the file KILL.
	Local: In your News directory, the killfile for group foo.bar
		will be foo/bar/KILL.
The difference between the two is that there can be one killfile for
each group (the local killfile), and that killfile affects only the
particular newsgroup (foo/bar/KILL affects only foo.bar; baz/quex/KILL
affects only baz.quex, etc).  The global killfile affects all newsgroups.

  Killfiles allow you to kill articles based on a number of criteria:
a subject line, a general subject, articles from one poster, articles
from one site, articles cross-posted from any other group, or from one
other group in particular, and articles that are follow-ups to anything at
all (that is, anything with the Re: in the subject line).  You can also
kill articles with a particular string anywhere in the article.

  This article assumes you know how to use an editor and that you have
created the directories for any local killfiles you may need.  Remember
that the name of the file is KILL, not kill or Kill; caps are important.

  The general style for building a kill line is:

		/pattern/modifiers:command

Now, that is obviously not useful to know without understanding it.  The
modifiers and commands are all explained in the rn man page, but here are 
some useful ones:
	Modifiers:
	   a: all, look through the entire article for the pattern
	   h: look through the header of the article for the pattern
	Commands:
	   m: mark as unread
	   j: mark as read
If no modifier appears before the colon, only the subject line of the
article is searched.  More than one command can be performed by using
the style:

		/pattern/modifier:command:command 

  The easiest way to kill a subject line is to kill it from within the
newsgroup.  When the subject line comes up that you want to kill, instead
of using 'n' to skip that article or 'k' to kill the subject for that 
session, type 'K'.  The subject line will then be entered into your KILL
file for that group.  If you want to put that line into your global KILL
file, you'll have to do that yourself.  (If you don't need it in your global
file, it's best not to put it there - global kill files slow down your news
reading a lot.)

  To kill a general subject, ie any 'test' messages, put in the pattern:
			/test/:j
This will kill anything with the word 'test' in the subject line.

  To kill anything that is a followup to any article, use this patter:
			/Subject: *Re:/:j
This kills anything beginning with Re:.

  To kill cross-posts from one particular group, say foo.bar, try this:

		/Newsgroups:.*[ ,]foo\.bar/h:j

This searches the header (the 'h' modifier) for any line containing the
string 'Newsgroups:' (which all articles do), as well as the string
'foo.bar'.  The other elements of this line are part of the regular
expression meta-language; see the ed(1) man page for more details.

  To kill all cross-posts, from any group at all:

		/Newsgroups:.*,/h:j

If the Newsgroups: line has a ',' in it, it's a cross-post, and therefore
this will find it.
  To kill articles from a single poster, you need to know the userid and
nodename of the poster; for this example we'll use noone@anywhere.all.

		/From: *noone@anywhere\.all/h:j

  For articles from any site, just remove the 'noone' from the previous
line, and articles from the machine 'anywhere.all' will be killed.

  Now, after all that, you might suddenly find out that you killed articles
from someone whose posts you want to read even if they write about subjects
you don't want to read.  For that, you need to 'unkill' the articles by
them:
	   /From: *name of person you want to read*/h:m
So, if you suddenly decided you wanted to read noone@anywhere.all's 
postings, after having deleted them above, you would add this line:

		/From: *noone@anywhere\.all/h:m

The 'm' becomes useful suddenly.  You can substitute m for j any time
you need to, up above.  In fact, you can kill everything in a newsgroup and
only read what you want to read by using the 'm' feature, and putting this
line at the top of your KILL file:
				/^/:j

  Finally, you can kill (or mark, of course) a particular pattern appearing
anywhere in the article, as opposed to just the Subject: line or the header:

			/pattern/a:j
			   and
			/pattern/a:m

  Further information is available in the rn man page, particularly on
other available commands and modifiers.  Regular expression syntax is
in the ed(1) man page; the xrn man page gives information about the quirks
of xrn in relation to killfiles.

Leanne Phillips
"Go not unto the Elves for counsel, for they will say both yea and nay."
"Now is _not_ a good time, Keiko!" - Worf, "Disaster"
"Variety is the spice of life, and I don't want to die." - Scott Borst