trn man page on 4.4BSD

Man page or keyword search:  
man Server   1065 pages
apropos Keyword Search (all sections)
Output format
4.4BSD logo
[printable version]

TRN(1)									TRN(1)

       trn - threaded read news program

       trn [options] [newsgroups]

       Trn  is	a threaded version of rn, which is a replacement for the read‐
       news(1) program.	 Being "threaded" means that the articles  are	inter‐
       connected in reply order.  Each discussion thread is a tree of articles
       where all the reply (child) articles branch off from  their  respective
       originating  (parent)  articles.	  A  representation of this tree (or a
       portion of it) is displayed in the article header as  you  are  reading
       news.   This  gives  you	 a  better  feel  for how all the articles are
       related, and even lets you see at a glance when an article has  replies
       --  a  good  thing  to  check  before posting.  In addition, trn has an
       thread selector that allows you to quickly browse  through  a  list  of
       subjects	 and choose the ones you find interesting.  This thread selec‐
       tor can be sorted by in a variety of orders and switched	 into  various
       display	modes  that  allows  you  to  pick all the subjects separately
       (threads can have multiple subjects) or even pick individual  articles.
       Any  items you don't select can be saved for reading later or marked as
       read with a single keystroke.

       If you are already familiar with trn you may  just  want	 to  read  the
       WHAT'S NEW section.  People upgrading from rn will probably want to pay
       attention to the sections on The Selector, The Tree  Display,  and  the
       aforementioned  WHAT'S  NEW.  If you're impatient, just dive in and get
       started.	 All the regular commands will be familiar to  an  rn  or  trn
       user,  and the on-line help will give you a quick run-down of what com‐
       mands are available (just type 'h' from any prompt).  I'd also  suggest
       using the command:

	   trn -x -X

       to make sure some of the best features are turned on.

       Starting Trn

       If  no  newsgroups  are specified, all the newsgroups which have unread
       news will be presented to the user in the order in which they occur  in
       the  .newsrc file.  At the prompt for each group you can choose to read
       it, skip it, move it, etc.  If a list of newsgroups is provided on  the
       command	line, trn will start up in "add" mode, using the list as a set
       of patterns to add new newsgroups and  restrict	which  newsgroups  are
       displayed (see also the discussion of the 'a' command on the newsgroup-
       selection level).

       Trn operates on four levels: the newsgroup-selection level, the	thread
       selector,  the article-reading level, and the paging level.  Each level
       has its own set of commands, and its own	 help  menu.   At  the	paging
       level (the bottom level) trn behaves much like the more(1) program.  At
       the article-reading level articles are presented to you in the order of
       their  replies, with the subjects being ordered by the date of the old‐
       est unread article (though there are commands for changing the  default
       display order).	In the thread selector you are presented with the sub‐
       jects and (usually) authors associated with each discussion thread, and
       given  a	 chance	 to  choose  which ones you wish to read now, save for
       later, or manipulate in some way.   At  the  newsgroup-selection	 level
       (the top level), you may specify which newsgroup you want next, or read
       them in the default order, which is the order that the newsgroups occur
       in  your	 .newsrc  file.	  (You	will  therefore want to rearrange your
       .newsrc file to put the most interesting newsgroups first.  This can be
       done  with  the 'm' command on the Newsgroup Selection level.  WARNING:
       invoking readnews/vnews (the old user interface) in any way  (including
       as  a  news checker in your login sequence!) will cause your .newsrc to
       be disarranged again.)

       On any level, at ANY prompt, help is available by typing an 'h'.	  This
       gives  you  a summary of available commands and what they do.  Remember
       this command, you'll need it.

       Typing space to any question means to do the normal  thing.   You  will
       know  what that is because every prompt has a list of several plausible
       commands enclosed in square brackets.  The first command in the list is
       the  one which will be done if you type a space.	 (All input is done in
       cbreak mode, so carriage returns should not be typed to terminate  any‐
       thing  except certain multi-character commands.	Those commands will be
       obvious in the discussion below because they take an argument.)

       Upon startup, trn will do several things:

       1.  It will look for your .newsrc file, which  is  your	list  of  sub‐
	   scribed-to newsgroups.  If trn doesn't find a .newsrc, it will cre‐
	   ate one.  If it does find one, it will back it up  under  the  name

       2.  It  will  input  your  .newsrc  file, listing out the first several
	   newsgroups with unread news.

       3.  It will perform certain consistency checks  on  your	 .newsrc.   If
	   your	 .newsrc  is out of date in any of several ways, trn will warn
	   you and patch it up for you, but you may  have  to  wait  a	little
	   longer for it to start up.

       4.  Trn will next check to see if any new newsgroups have been created,
	   and give you the opportunity to add them to your .newsrc.

       5.  Trn goes into the  top  prompt  level  --  the  newsgroup-selection

       Newsgroup Selection Level

       In  this	 section the words "next" and "previous" refer to the ordering
       of the newsgroups in your .newsrc  file.	  On  the  newsgroup-selection
       level, the prompt looks like this:

       ====== 17 unread articles in talk.blurfl -- read now? [ynq]

       unless the group is set for unthreaded reading, in which case the first
       six characters are "******".  The following commands may	 be  given  at
       this level:

       +       Enter this newsgroup through the selector.

       y       Begin reading this newsgroup now.

       SP      Enter  the newsgroup by executing the default command listed in

	       Do this newsgroup now, but execute  command  before  displaying
	       anything.   The	command will be interpreted as if typed on the
	       article selection level.

       =       Start this newsgroup, but list subjects before displaying arti‐

       U       Enter this newsgroup through the "Set unread" prompt.

       t       Toggle  the  newsgroup between threaded and unthreaded reading.
	       The default is threaded, and the current setting is  stored  in
	       your .newsrc.

       n       Go to the next newsgroup with unread news.

       N       Go to the next newsgroup.

       p       Go  to  the  previous  newsgroup with unread news.  If there is
	       none, stay at the current newsgroup.

       P       Go to the previous newsgroup.

       -       Go to the previously displayed newsgroup (regardless of whether
	       it is before or after the current one in the list).

       1       Go to the first newsgroup.

       ^       Go to the first newsgroup with unread news.

       $       Go to the end of the newsgroups list.

       g newsgroup
	       Go  to newsgroup, which can be the group's name or a zero-rela‐
	       tive number of the groups in your .newsrc (see the 'L'  command
	       to  list	 your  .newsrc).  If it isn't currently subscribed to,
	       you will be asked if you want to subscribe.

	       Scan forward for a newsgroup  matching  pattern.	  Patterns  do
	       globbing	 like filenames, i.e., use ? to match a single charac‐
	       ter, * to match any sequence of characters, and [] to specify a
	       list  of	 characters to match.  ("all" may be used as a synonym
	       for "*".)  Unlike normal filename globbing, newsgroup-searching
	       is  not	anchored  to  the front and back of the filename, i.e.
	       "/ski" will find rec.skiing.  You may use ^ or $ to anchor  the
	       front or back of the search: "/^test$" will find newsgroup test
	       and nothing else If you	want  to  include  newsgroups  with  0
	       unread  articles,  append  /r.	If  the newsgroup is not found
	       between the current  newsgroup  and  the	 last  newsgroup,  the
	       search will wrap around to the beginning.

	       Same as /, but search backwards.

       u       Unsubscribe from the current newsgroup.

       l string
	       List  newsgroups	 not  subscribed  to  which contain the string

       L       Lists the current state	of  the	 .newsrc,  along  with	status

			Status	   Meaning
			<number>   Count of unread articles in newsgroup.
			READ	   No unread articles in newsgroup.
			UNSUB	   Unsubscribed newsgroup.
			BOGUS	   Bogus newsgroup.
			JUNK	   Ignored line in .newsrc
				   (e.g. readnews "options" line).

	       (A  bogus  newsgroup  is	 one that is not in the list of active
	       newsgroups in  the  active  file,  which	 on  most  systems  is
	       /usr/lib/news/active unless you use NNTP.)

       m {name}
	       Move  the named newsgroup somewhere else in the .newsrc.	 If no
	       name is given, the current newsgroup is	moved.	 There	are  a
	       number  of ways to specify where you want the newsgroup -- type
	       h for help when it asks where you want to put it.

       c       Catch up -- mark all unread articles in this newsgroup as read.

       A       Abandon the changes made to the current newsgroup since trn was
	       started.	 Useful when you accidentally mark a group as read.

       o {pattern}
	       Only display those newsgroups whose name matches pattern.  Pat‐
	       terns are the same as for the '/' command.   Multiple  patterns
	       may  be	separated by spaces, just as on the command line.  The
	       restriction will remain in effect either	 until	there  are  no
	       articles	 left  in the restricted set of newsgroups, or another
	       restriction command is given.  Since pattern is	optional,  'o'
	       by itself will remove the restriction.

       a pattern
	       Add  unsubscribed newsgroups matching pattern.  If any matching
	       newsgroups are found, you will be asked for  each  one  whether
	       you  would  like	 to  add it.  If you want to add all the news‐
	       groups, you can type 'Y' and they will be added the the end  of
	       the  .newsrc  file.   If	 you  don't want to subscribe, all the
	       remaining groups can be ignored by typing 'N'.  After  any  new
	       newsgroups  have been added, the 'a' command also restricts the
	       current set of newsgroups just like the 'o' command does.

       &       Print out the current status of command-line switches  and  any
	       newsgroup restrictions.

       &switch {switch}
	       Set additional command-line switches.

       &&      Print out the current macro definitions.

       &&keys commands
	       Define additional macros.

	       Escape  to  a subshell.	One exclamation mark (!) leaves you in
	       your own news directory.	 A double exclamation mark (!!) leaves
	       you   in	 the  spool  directory	for  news,  which  is  usually
	       /usr/spool/news unless you're using NNTP	 to  read  news.   The
	       environment variable SHELL will be used if defined.  If command
	       is null, an interactive shell is started.

       v       Print the current version number and information	 on  where  to
	       send bug reports.

       q       Quit.

       x       Quit,  restoring	 .newsrc  to its state at startup of trn.  The
	       .newsrc you would have had if you had exited with 'q'  will  be
	       called .newnewsrc, in case you didn't really want to type 'x'.

       ^K      Edit  the global list of memorized commands (in the global KILL
	       file) that you wish to be performed in every newsgroup as it is
	       started	up  (that  is,	when  it is selected at the newsgroup-
	       selection level).  This file contains commands (one  per	 line)
	       such  as	 /subject/:j or /author/f:+ to kill or select articles
	       based on the indicated search criteria.	There is also a	 local
	       list   of   commands   for  each	 newsgroup  that  can  contain
	       kill/selection  commands	 tailored  for	each  specific	group.
	       Because	of  the overhead involved in searching for articles to
	       kill, it is better if possible to use a local list rather  than
	       the  global  one.   Local  memorized commands are usually main‐
	       tained by using the 'A' or 'T' commands from the	 article/pager
	       level  or  in  the selector.  There is also a K search modifier
	       that appends any search command you desire to add.  It is  also
	       possible	 to  manually edit the file with the '^K' command from
	       anywhere inside a newsgroup.   If  either  of  the  environment
	       variables VISUAL or EDITOR is set, the specified editor will be
	       invoked; otherwise a default editor  is	invoked	 on  the  KILL

       The Selector

       Most  people  who  don't have all day to read news will want to enter a
       newsgroup by way of the selector.  This is accomplished	by  using  the
       '+'  command  at	 the  newsgroup-selection or article/pager levels.  In
       fact, this may be the default command for entering a newsgroup, depend‐
       ing  on	how  your version of trn was configured and your use of the -X

       The selector displays a list of articles by their  subjects  and	 (usu‐
       ally) authors.  The articles are grouped into threads by default (which
       may list multiple subjects per  selectable  item	 if  the  subject  has
       changed	during the discussion) and ordered by the date of their oldest
       unread article.	Thread or subject groups are also shown with  a	 count
       of  the number of articles in each group.  Each selectable item is pre‐
       ceded by a letter or number that can be typed to toggle its  selection.
       Items  that  are	 selected  are	flagged with a '+' after their letter.
       Groups that have only some of their articles selected are flagged  with
       a  '*'.	You can change the selector's mode (to pick each subject sepa‐
       rately or pick individual articles), order the list  by	a  variety  of
       sort  criteria,	and switch the author display between its long, medium
       and short styles using the commands detailed below.

       The following commands are available in the selector:

	       Select/deselect the indicated item by  its  letter  or  number.
	       There are quite a few letters omitted from the alpha characters
	       to be typed as commands	--  see	 below.	  Also,	 the  variable
	       SELECTCHARS is available to customize which characters you want
	       to be used as selection letters, overriding their command func‐

       SP      Perform the default command.  This is usually > for most pages,
	       and Z on the last page (although D and X are also  quite	 popu‐

       CR      Begin  reading.	 If no articles are selected, the current item
	       is selected (unless you've marked it as killed).

       Z,TAB   Begin reading.  If no articles are selected,  read  all	unread

       '.'     Toggle the current item's selection (the one under the cursor).

       *       Same  as	 '.' except that it affects all articles with the same
	       subject (useful in the article selector).

       #       Make an overriding selection that reads the current item	 only,
	       temporarily ignoring all other selections.

       k, ','  Mark the current item as killed.

       m, \    Unmark the current item.

       -       Set  a  range,  as  in a - k.  Repeats the last marking action:
	       selection, deselection, killing, or unmarking.

       @       Toggle all visible selections.

       M       Mark the current item's article(s) to return on newsgroup  exit
	       and kill the item.

       Y       Yank  back  and	select the marked-to-return articles, clearing
	       their to-return status.

       E       Exclude all unselected items from the  selection	 list  (narrow
	       the display).  Press it again to pick from all available items.

       n, ]    Move  down  to  the  next  item	(try the down-arrow keypad key

       p, [    Move up to the previous	item  (try  the	 up-arrow  keypad  key

       <       Go to previous page (try the left-arrow keypad key also).

       >       Go to next page (try the right-arrow keypad key also).

       ^       Go to the first page.

       $       Go to the last page.

       S       Set the items the selector displays: threads, subjects or arti‐
	       cles.  If the group is unthreaded setting this to threads  will
	       thread the group.

       =       Switch  between	the  article  selector	and the subject/thread

       O       Pick the order for the items: date, subject, author, item count
	       (for  thread/subject  groups),  and  a subject-date grouping of
	       individual articles.  Typing the selection in  lower-case  will
	       sort  the articles in the default direction, while using upper-
	       case will reverse the sort.  There is a separate	 default  sort
	       order for the subject/thread selector and the article selector.
	       See the -O option to set your favorite selector mode  and  sort
	       order as the default.

       R       Reverse the current sort order.

       L       Switch  the  selector's	display	 between  the long, medium and
	       short display styles.  See the -x option to set	your  favorite
	       style as the default.

       U       Switch between selecting unread/read articles.

       X       Mark all unselected articles as read and start reading.

       D       Mark  unselected articles on the current page as read and begin
	       reading if articles are selected,  otherwise  go	 to  the  next

       J       Mark  all  selected  articles  as read (useful after performing
	       some action on them with the ':' command).

       c       Catch up -- marks ALL articles as read without affecting	 their
	       cross-posted counterparts.

       A       Add  a  subject-search  command to the memorized list (a.k.a. a
	       KILL file) for this group.  You are prompted to	choose	selec‐
	       tion  (+),  junking (j), selection including all replies (.) or
	       junking including all replies (,).  If the thread has more than
	       one  subject  the first subject is the one chosen for the memo‐
	       rized command.

       T       Add a thread-oriented command to the memorized  list  for  this
	       group.	You  are  prompted to choose selecting the thread (+),
	       junking the thread (j), or clearing the	auto-selection/junking
	       for the thread (c).  (Note: there are three other options ('.',
	       ',', and 'C') on the article-reading level -- look there for an
	       explanation of their use.)

       ^K      Edit  the local list of memorized commands (a.k.a. a KILL file)
	       for this newsgroup.  A detailed description of  memorized  com‐
	       mands is found in the Article Selection section.

	       Apply  a	 command  to  all  selected  articles.	 If nothing is
	       selected, apply the command to all the unread articles.

	       Applicable commands include '+'/'-' (select/deselect  an	 arti‐
	       cle),  "++"/"--"	 (select/deselect a thread), "T+" (auto-select
	       the entire thread), "Tj" (auto-junk  the	 entire	 thread),  't'
	       (display	 article  tree),  "s dest" (save article to a destina‐
	       tion), "e dir" (extract to directory), 'E' (end	partial	 uude‐
	       code), as well as: S, ⎪, w, W, m, M, j, = and ','.

	       Scan  all  articles for a subject containing pattern and select

	       Apply the commands listed to articles matching the search  com‐
	       mand  (possibly	with  h,  a,  r, or K modifiers).  The default
	       action, if no command is specified, is to select the  article's
	       item  in	 the  selector	(e.g.  the entire thread ("++") in the
	       thread selector).  See the section on Regular  Expressions  and
	       the  description	 of pattern searching in the Article Selection

	       One example: to	scan  all  the	unread	articles  looking  for
	       "topic"	anywhere  in the article and then select its group and
	       save the articles to  the  files	 topic.1,  topic.2,  etc.  use
	       "/topic/a:++:s topic.%#".

       N       Go to the next newsgroup with unread news.

       P       Go to the previous newsgroup with unread news.

       &       Display or set the current status of command-line switches.

       &&      Display or set the current macro definitions.

	       Escape to a subshell.

       q       Quit this group.

       ESC,+   Quit  the  selector to the article level.  Note: ESC won't work
	       if trn has mapped your arrow keys with default macros  and  the
	       first character that your arrow keys send is an ESC.

       Q       Quit  the  current newsgroup and return to the newsgroup-selec‐
	       tion prompt for this group.

       Article-Reading Level

       On the article-reading level, trn displays unread  articles  in	thread
       sequence	 (reading  each	 article  and  its  replies before going on to
       another topic) unless threads are disabled for a particular  group,  in
       which  case  the	 default  order is the order they arrived at your site
       (numeric sequence).  In either case if you use the subject-search  com‐
       mand  (^N) you will switch to reading the articles in date order within
       each matching subject.  (Making selections in the subject  selector  or
       using  the  -S switch will automatically turn subject search mode on in
       an unthreaded group.)

       On the article-reading level you are not asked whether you want to read
       an article before the article is displayed; rather, trn simply displays
       the first page (or portion of a page, at low baud rates) of an  article
       and  asks  if  you want to continue.  The normal article-reading prompt
       comes at the END of an article (although article-reading	 commands  can
       also  be	 given from within the middle of an article in addition to the
       pager level commands).  The prompt at the end of an article looks  like

       End of article 248 (of 257) -- what next? [npq]

       The following are the options at this point:

       n,SP    Scan  forward  for  next unread article.	 (Note: the 'n' (next)
	       command when typed at the end of an article does not  mark  the
	       article	as  read,  since an article is automatically marked as
	       read after the last line of it is  printed.   It	 is  therefore
	       possible	 to type a sequence such as 'mn' and leave the article
	       marked as unread.  The fact that an article is marked  as  read
	       by  typing  n,  N, ^N, e, s, S, ⎪, w, or W within the MIDDLE of
	       the article is in fact a special case.)

       N       Go to the next article.

       ^N      Find the next article with the  same  subject  in  date	order.
	       This also makes subject search mode (^N) the default command at
	       the end of an article.

       p       Scan backward for previous unread article.  If there  is	 none,
	       stay at the current article.

       P       Go to the previous article.

       -       Go  to  the previously displayed article (regardless of whether
	       that article is before or after	this  article  in  the	normal

       ^P      Find  the previous article with the same subject in date order.
	       Makes subject search mode (^N) the default.

       _N      Go to the next article in numeric sequence.

       _P      Go to the previous article in numeric sequence.

       <, >    Browse the previous/next selected thread/subject.  If no selec‐
	       tions have been made, all the threads that had unread news when
	       you entered the newsgroup  (or  last  left  the	selector)  are
	       treated as selected.  Entering an empty newsgroup makes all the
	       already-read threads available for browsing.

       [, ]    Proceed to the left/right in the article tree.  Visits already-
	       read   articles	 as  well  as  empty  nodes.   Try  using  the
	       left-/right-arrow keys also.

       {, }    Go to the root/leaf of the article tree, even if	 the  node  is
	       already read or empty.  Proceeds to the very first/last node if
	       you're already at a root/leaf in a multi-root thread.

       (, )    Go to  the  previous/next  sibling  in  the  thread,  including
	       "cousin" siblings.  Try using the up-/down-arrow keys also.

       t       Display	the  entire  article  tree and all its associated sub‐
	       jects.  If the group is not currently threaded, it will	become
	       threaded to process this command.

       ^R      Restart the current article.

       v       Restart	the  current  article verbosely, displaying the entire

       ^L      Refresh the screen.

       ^X      Restart the current article, and decrypt as a rot13 message.

       X       Refresh the screen, and decrypt as a rot13 message.

       b       Back up one page.

       q       Quit this newsgroup and	go  back  to  the  newsgroup-selection

       ^       Go to the first unread article.

       $       Go to the last article (actually, one past the last article).

       number  Go to the numbered article.

	       Apply a set of commands to a set of articles.  A range consists
	       of either <article  number>  or	<article number>-<article num‐
	       ber>.   A  dot '.' represents the current article, and a dollar
	       sign '$' represents the last article.

	       Applicable commands include 'm' (mark as unread), 'M' (mark  as
	       read-until-exit),  'j' (mark as read), "s dest" (save to a des‐
	       tination), "e dir" (extract to  directory),  "!command"	(shell
	       escape),	 "=" (print the subject), '+'/'-' (select/deselect the
	       article), 'T+' (auto-select the entire thread), 'Tj' (auto-junk
	       the  entire  thread), "++"/"--" (select/deselect the associated
	       thread), 'C' (cancel), as well as S, ⎪, w, W, and t.

	       Apply a command	to  all	 selected  articles.   If  nothing  is
	       selected,  nothing  is  done.  For applicable commands, see the
	       discussion above for the range command.

       j       Junk the current article (i.e. mark it as read).	 If this  com‐
	       mand is used from within an article, you are left at the end of
	       the article, unlike 'n', which looks for the next article.

       m       Mark the current article as still unread.  (If you  don't  want
	       to  see	this  article  for  a while you're probably better off
	       using M instead of m, otherwise this article might  get	picked
	       again as the first available article sooner than you'd like.)

       M       Mark  the  current  article to return on newsgroup exit.	 Until
	       then, the current article will be marked as read.  This is use‐
	       ful for returning to an article in another session.

       Y       Yank  back  the	marked-to-return  articles, clearing their to-
	       return status.  If  you	are  reading  selected	articles,  the
	       yanked articles come back selected.

	       Scan  forward  for  article  containing pattern in the subject.
	       See the Regular Expressions section.  Together with the	escape
	       substitution  facility  described  later,  it  becomes  easy to
	       search for various attributes of the current article,  such  as
	       subject,	 article  ID,  author name, etc.  The previous pattern
	       can be recalled with ESC.  If pattern is omitted, the  previous
	       pattern is assumed.

	       Scan forward for article containing pattern in the from line.

	       Scan forward for article containing pattern in the header.

	       Scan  forward  for  article  containing pattern anywhere in the

	       Scan read articles also.

	       Make search case sensitive.  Ordinarily upper-  and  lower-case
	       are considered the same.

	       Apply  the commands listed to articles matching the search com‐
	       mand (possibly with h, a, or r modifiers).  Applicable commands
	       include	'm'  (mark  as unread), 'M' (mark as read-until-exit),
	       'j' (mark as read), "s dest" (save to a destination),  "e  dir"
	       (extract	 to  directory), "!command" (shell escape), "=" (print
	       the subject), '+' (select the article), '-' deselect the	 arti‐
	       cle,  'T+' (auto-select the entire thread), 'Tj' (auto-junk the
	       entire thread), "++" (select the associated thread), "--" dese‐
	       lect  the  associated  thread), and 'C' (cancel).  If the first
	       command is 'm' or 'M', modifier r  is  assumed.	 A  K  may  be
	       included	 in  the  modifiers  (not  the	commands) to cause the
	       entire command (sans K) to be saved to  the  local  KILL	 file,
	       where  it will be applied to every article that shows up in the

	       For example, to save all articles in a given newsgroup  to  the
	       line  printer and mark them read, use "/^/⎪lpr:j".  If you type
	       "/^/K⎪lpr:j", this will happen every time you enter  the	 news‐

	       Scan  backward  for  article containing pattern in the subject.
	       May be  modified	 as  the  forward  search  is:	?pattern?modi‐
	       fiers[:commands].   It  is likely that you will want an r modi‐
	       fier when scanning backward.

       k       Mark as read all articles with the same subject as the  current
	       article.	 (Note: there is no single character command to tempo‐
	       rarily mark as read (M command) articles matching  the  current
	       subject.	 That can be done with "/<ESC>s/M", however.)

	       Mark the current article and all its replies as read.

       J       Junk  all  the  articles in the current thread, even if it con‐
	       tains multiple subjects.

       A       Add a subject-search command to the  memorized  list  for  this
	       group (in the KILL file).  You are prompted to choose selection
	       (+), junking (j), selection including all replies (.) or	 junk‐
	       ing including all replies (,).

       K       This  is a synonym for the command "Aj" which adds a command to
	       junk the current subject to  the	 memorized  commands  for  the
	       group.  See also the K modifier on searches above.

       T       Add  a  thread-oriented	command to the memorized list for this
	       group.  You are prompted to choose selection of	entire	thread
	       (+),  junking of entire thread (j), selection of an article and
	       its replies (.), junking of an article  and  its	 replies  (,),
	       clearing	 the  auto-selection/junking  for  this thread (c), or
	       clearing the auto-selection/junking  for	 an  article  and  its
	       replies (C).

       ^K      Edit  the local list of memorized commands (a.k.a. a KILL file)
	       for this newsgroup.  Each line of the KILL  file	 is  either  a
	       subject-affecting  command  of the form /pattern/x or a thread-
	       affecting command of the form <message-id> Tx.  The first  line
	       in  the KILL file has the form "THRU <number>", which tells trn
	       the maximum article number that the KILL file has been  applied
	       to.   The  THRU	value  is  usually only used to keep header or
	       article searches from happening multiple	 times.	  Subject  and
	       from-line  searches are quite fast if the group has cached data
	       around (e.g. a .thread or .overview file).  If it doesn't,  the
	       THRU line is used to set a lower boundary on the search to keep
	       the startup time as short as possible.	If  trn	 skipped  some
	       selections  (or	you're not sure), wait for the group to finish
	       being cached (e.g. visiting the selector forces the caching  of
	       all unread articles), quit the group, and re-enter.

	       To  see	only  newgroup	articles in the control newsgroup, for
	       instance, you might include the line


	       which selects all subjects containing "newgroup".  You can  add
	       lines  automatically  via the A and T commands as well as the K
	       search modifier, but editing is the only way to remove  subject
	       commands	 (thread  commands  die	 automatically	as  the thread
	       dies).  If either of the environment variables VISUAL or EDITOR
	       is  set,	 the  specified	 editor	 will  be invoked; otherwise a
	       default editor (normally vi) is invoked on the KILL file.

	       The KILL file may also contain switch-setting  lines  beginning
	       with  '&'.   Additionally,  any line beginning with 'X' is exe‐
	       cuted on exit from the newsgroup rather than on entrance.  This
	       can  be	used to set switches back to a default value.  One use
	       for this capability is to set your save directory to  a	custom
	       value  upon  entry to a newsgroup and set it back on exit using
	       the -ESAVEDIR option.  See also the -/ option for another solu‐
	       tion to multiple save directories without using KILL files.

       r       Reply  through  net mail.  The environment variables MAILPOSTER
	       and MAILHEADER may be used to modify the	 mailing  behavior  of
	       trn (see the environment section).  If the current article does
	       not exist (such as the "End of  newsgroup"  pseudo-article  you
	       can get to with a '$' command), invokes the mailer to nobody in

       R       Reply, including the current article in the header file	gener‐
	       ated.   (See 'F' command below).	 The YOUSAID environment vari‐
	       able controls the format of the attribution line.

       f       Submit a follow-up article.  If the current  article  does  not
	       exist  (such  as	 the "End of newsgroup" pseudo-article you can
	       get to with a '$' command), posts an original (root) article.

       F       Submit a follow-up article, and include the old	article,  with
	       lines  prefixed	either	by  ">"	 or  by the argument to the -F
	       switch.	Trn will attempt to provide  an	 attribution  line  in
	       front  of  the quoted article, generated from the From: line of
	       the article.  Unfortunately, the From: line doesn't always con‐
	       tain  the  right	 name;	you should double check it against the
	       signature and change it if necessary, or you may have to apolo‐
	       gize  for  quoting the wrong person.  The environment variables
	       NEWSPOSTER, NEWSHEADER and ATTRIBUTION may be  used  to	modify
	       the posting behavior of trn (see environment section).

       C       Cancel the current article, but only if you are the contributor
	       or superuser.

       z       Supersede the current article, but only if you are the contrib‐

       Z       Same as the 'z' command, but you start with a copy of the orig‐
	       inal article to work with.

       c       Catch up in this newsgroup; i.e., mark all articles as read.

       U       Mark some or all articles as unread.  You can  choose  to  mark
	       the  current  thread,  sub-thread  (the current article and its
	       replies), all the articles, or start up the selector to	choose
	       specific articles to set unread.

       u       Unsubscribe from this newsgroup.

       s destination
	       Save to a filename or pipe using sh.  If the first character of
	       the destination is a vertical bar, the rest of the  command  is
	       considered  a  shell  command  to  which	 the article is passed
	       through standard input.	The command  is	 subject  to  filename
	       expansion.   (See also the environment variable PIPESAVER.)  If
	       the destination does not begin with a vertical bar, the rest of
	       the  command is assumed to be a filename of some sort.  An ini‐
	       tial tilde '~' will be translated  to  the  name	 of  the  home
	       directory,  and an initial environment variable substitution is
	       also allowed.  If only a directory name is specified, the envi‐
	       ronment	variable SAVENAME is used to generate the actual name.
	       If a non-absolute filename is specified, the environment	 vari‐
	       able SAVEDIR will be used to generate the actual directory.  If
	       nothing is specified, then obviously  both  variables  will  be
	       used.   Since  the current directory for trn while doing a save
	       command is your private news directory, typing  "s  ./filename"
	       will  force the file to your news directory.  Save commands are
	       also run through % interpretation, so that  you	can  enter  "s
	       %O/filename"  to save to the directory you were in when you ran
	       trn, and "s %t" to save to a filename consisting of the	Inter‐
	       net address of the sender.

	       After  generating the full pathname of the file to save to, trn
	       determines if the file exists already, and if  so,  appends  to
	       it.   trn  will	attempt	 to determine if an existing file is a
	       mailbox or a normal file, and save the article in the same for‐
	       mat.   If  the  output  file  does  not	yet exist, trn will by
	       default ask you which format you want, or you can make it  skip
	       the  question  with either the -M or -N switch.	If the article
	       is to be saved in mailbox format, the command to do so is  gen‐
	       erated  from  the  environment  variable MBOXSAVER.  Otherwise,
	       NORMSAVER is used.

       S destination
	       Save to a filename or pipe using a  preferred  shell,  such  as
	       csh.   Which  shell  is used depends first on what you have the
	       environment variable SHELL set to, and in the absence of	 that,
	       on  what	 your  news  administrator set for the preferred shell
	       when he or she installed trn.

       ⎪ command
	       Shorthand for "s ⎪ command".

       w destination
	       The same as "s destination", but saves without the header.

       W destination
	       The same as "S destination", but saves without the header.

       e directory
	       Extract a shell archive or uuencoded binary to  the  designated
	       directory.   The	 article is first scanned to try discover what
	       type of data is encapsulated.  If a "cut here" line  is	found,
	       the first non-blank line after it must be either the start of a
	       shar header, or the "begin" or  "table"	line  of  a  uuencoded
	       binary.	 The  default for extracting shars is to send the data
	       portion of the file to /bin/sh, but that can be overridden with
	       the  UNSHAR variable (see the ENVIRONMENT section).  Uudecoding
	       is done internally by a decoder that can handle the data	 being
	       split  up  over multiple articles, and extracted one piece at a
	       time.  To decode a multi-article file, either execute  the  'e'
	       command	in  each  article in sequence, use an article range to
	       execute the command, or use the ":e" command to repeat the com‐
	       mand for each of the currently selected articles.  When the 'e'
	       command is not followed by any arguments, it  will  repeat  the
	       arguments  from	the last extraction.  All directory specifica‐
	       tions are relative to the value of SAVEDIR, so you can use  the
	       command	"e  ." to force an extraction to SAVEDIR itself.  If a
	       uudecoding is in progress (i.e. the last piece wasn't extracted
	       yet)  and you exit the group, the partial file will be removed.
	       This also occurs if you start to extract a new  uuencoded  file
	       before the previous one was finished.  See also the 'E' command
	       for ending a multi-part uudecoding manually.

	       There is one special case that is handled differently:  if  the
	       first  file  in	a recognizable shar file is a uuencoded binary
	       that was packed with lines starting with an 'X',	 we  will  not
	       unshar  the file but instead uudecode it.  If this causes prob‐
	       lems, you can override the default extraction method by follow‐
	       ing  the	 directory  with  an  explicit	command to execute, as
	       described below.

       e directory⎪command
	       This form of the 'e' command allows you to extract  other  data
	       formats	than  shar or uuencoded files or to override the deci‐
	       sions made by  the  automatic  extraction  selection  described
	       above.	In normal operation, all data following what we recog‐
	       nize as a "cut here" line will be sent to  the  specified  com‐
	       mand.   Additionally,  the distinctive beginning of a shell ar‐
	       chive is also recognized without a preceding  cut  line.	  When
	       the  command  is	 run, the default directory will be set to the
	       specified directory, or the value of  SAVEDIR  if  unspecified.
	       Entering	 the  'e'  command  without arguments will repeat your
	       previous extract command.  You can use the command "e dir⎪"  to
	       extract	to a new directory using the previously-specified com‐

       E       This command ends any multi-part uuencoded file extraction that
	       you began, but are unable (or unwilling) to complete.  The par‐
	       tially extracted file is removed.

       &       Print out the current status of command-line switches.

       &switch {switch}
	       Set additional command-line switches.

       &&      Print out current macro definitions.

       &&keys commands
	       Define an additional macro.

	       Escape to a subshell.  One exclamation mark (!) leaves  you  in
	       your own news directory.	 A double exclamation mark (!!) leaves
	       you in the spool directory of the current newsgroup.  The envi‐
	       ronment	variable SHELL will be used if defined.	 If command is
	       null, an interactive shell is started.

	       You can use escape key substitutions described later to get  to
	       many run-time values.  The command is also run through % inter‐
	       pretation, in case it is being called from a  range  or	search

       +       Start  the selector in the last-used mode.  If the newsgroup is
	       unthreaded and the default selector mode is threads, we	tempo‐
	       rarily switch to subject selection unless manually overridden.

       _a      Start the selector in article mode.

       _s      Start the selector in subject mode.

       _t      Start the selector in thread mode.

       _T      Start  the  selector  in	 thread	 mode  unless  the group isn't
	       threaded, in which case we settle for the subject selector.

       =       List subjects of unread articles.

       #       Print last article number.

       _+      Select the entire thread associated with the current article.

       _-      Deselect the entire thread associated with the current article.

       Pager Level

       At the pager level (within an article), the prompt looks like this:


       and a number of commands may be given:

       SP      Display next page.

       x       Display next page and decrypt as a rot13 message.

       d       Display half a page more.

       CR      Display one more line.

       q       Go to the end of the current article (don't mark it either read
	       or unread).  Leaves you at the "What next?" prompt.

       j       Junk  the  current  article.  Mark it read and go to the end of
	       the article.

       ^L      Refresh the screen.

       X       Refresh the screen and decrypt as a rot13 message.

       b       Back up one page.

       t       Display the entire article tree, including its associated  sub‐
	       jects,  and  continue  reading.	 If the group is not currently
	       threaded, it will be threaded first.

	       Goto (search forward for) pattern within current article.  Note
	       that there is no space between the command and the pattern.  If
	       the pattern is found, the page containing the pattern  will  be
	       displayed.   Where  on  the  page the line matching the pattern
	       goes depends on the value of the -g  switch.   By  default  the
	       matched line goes at the top of the screen.

       G       Search for g pattern again.

       ^G      This  is a special version of the 'g' command that is for skip‐
	       ping articles in a digest.  It is equivalent to	setting	 "-g4"
	       and then executing the command "g^Subject:".

       TAB     This  is another special version of the 'g' command that is for
	       skipping inclusions of older articles.	It  is	equivalent  to
	       setting	"-g4" and then executing the command "g^[^c]", where c
	       is the first character of the last  line	 on  the  screen.   It
	       searches	 for  the  first line that doesn't begin with the same
	       character as the last line on the screen.

	       Escape to a subshell.

       The following commands skip the	rest  of  the  current	article,  then
       behave  just  as	 if typed to the "What next?" prompt at the end of the
       article.	 See the documentation at  the	article	 selection  level  for
       these commands.

	   # $ & / = ? A c C f F k K T ^K J , m M r R ^R u U v Y ^
	   p P ^P - < > [ ] { } number
	   range{,range} command{:command}

       The  following  commands	 also skip to the end of the article, but have
       the additional effect of marking the current article as read:

	   n N ^N e s S ⎪ w W

       Miscellaneous facts about commands

       An 'n' typed at either the "Last newsgroup" prompt or a "Last  article"
       prompt  will  cycle  back  to the top of the newsgroup or article list,
       whereas a 'q' will quit the level.  (Note that 'n' does not mean	 "no",
       but rather "next".)  A space will of course do whatever is shown as the
       default, which will vary depending on whether trn thinks you have  more
       articles or newsgroups to read.

       The  'b'	 (backup  page) command may be repeated until the beginning of
       the article is reached.	If trn is suspended (via a ^Z), then when  the
       job  is	resumed,  a refresh (^L) will automatically be done (Berkeley-
       type systems only).  If you type a command such as  '!'	or  's'	 which
       takes you from the middle of the article to the end, you can always get
       back into the middle by typing '^L'.

       In multi-character commands such as '!', 's', '/', etc, you can	inter‐
       polate  various	run-time  values by typing escape and a character.  To
       find out what you can interpolate, type escape and 'h',	or  check  out
       the  single  character % substitutions for environment variables in the
       Interpretation and Interpolation section, which are  the	 same.	 Addi‐
       tionally,  typing a double escape will cause any % substitutions in the
       string already typed in to be expanded.

       The Tree Display

       When reading a threaded newsgroup, trn displays a character representa‐
       tion  of the article tree in the upper right corner of the header.  For
       example, consider the following display:

	      ⎪	   \-[1]

       This tree represents an initial article that has three  direct  replies
       (the  second  column with three (1)'s).	Each reply has further replies
       branching off from them.	 In two cases the subject line was altered  in
       the reply, as indicated by the increasing numbers.

       The  third  subject  is	not  selected for reading, as indicated by the
       <>'s.  Note you can always forcefully visit an unselected article  with
       'N'  and 'P' as well as the thread-navagation commands (which are typi‐
       cally macro'ed to the arrow keys on your keypad).

       When there is only one subject associated with a thread, all the	 nodes
       are  marked  with the number 1.	When the first subject change arrives,
       it is marked with the number 2, and so on.  If you were to look at this
       thread  in  the	thread selector, the three subjects associated with it
       would be listed in the same order as the ascending  digits.   In	 those
       rare  cases where more than 9 subjects are associated with each thread,
       the nodes are marked with the letters A-Z, and then by a-z.

       The articles that have already been read are enclosed in	 ()'s,	Unread
       articles	 are displayed in []'s, and unread-but-unselected articles are
       displayed in <>'s.  The currently displayed article has its entire node
       highlighted  in the display.  The previously displayed article has only
       its number highlighted.	If the group has not been completely  threaded
       yet,  some  articles  will appear as (?) until trn can determine if the
       referenced article truly exists or not.	If you visit such  an  article
       and wait for trn to finish threading the group, the screen will refresh
       as soon as the presence or absence of the article is determined.


       Trn has a nice set of options to allow you to tailor the interaction to
       your  liking.  (You might like to know that the author swears by "-x6ms
       -e +m -S -XX -N -B -p".)	 These options may be set on the command line,
       via  the	 TRNINIT  environment  variable,  via a file pointed to by the
       TRNINIT variable, or from within trn via the &  command.	  Options  may
       generally be unset by typing "+switch".	Options include:

       -a   causes  trn	 to  always  thread  the unread articles on entry to a
	    group.  Without this option trn may enter a group in a  partially-
	    threaded  state  and  process the unthreaded articles in the back‐
	    ground.  The down side of this is that the tree display may not be
	    complete  when  it	is first displayed and you may start out at an
	    odd position in the first thread's article tree.

       -A   tells trn to attempt to create some default macros that  will  map
	    your  arrow	 keys  to  useful trn functions (this is the default).
	    Use +A to turn this behavior off.

       -b   will force trn to read  each  thread  in  a	 breadth-first	order,
	    rather than depth-first.

       -B   will  turn	on  a spinner that twirls when trn is doing background
	    article-processing.	 A gizmo for those interested in what's	 going
	    on behind the scenes.

       -c   checks  for news without reading news.  If a list of newsgroups is
	    given on the command line, only those newsgroups will be  checked;
	    otherwise  all subscribed-to newsgroups are checked.  Whenever the
	    -c switch is specified, a non-zero exit status from trn means that
	    there  is  unread  news  in one of the checked newsgroups.	The -c
	    switch does not disable the printing  of  newsgroups  with	unread
	    news;  this is controlled by the -s switch.	 (The -c switch is not
	    meaningful when given via the & command.)

	    tells trn how often to checkpoint the .newsrc, in  articles	 read.
	    Actually,  this  number  says when to start thinking about doing a
	    checkpoint if the situation is  right.   If	 a  reasonable	check-
	    pointing  situation	 doesn't  arise	 within	 10 more articles, the
	    .newsrc is check-pointed willy-nilly.

       -d<directory name>
	    sets the default save directory to something  other	 than  ~/News.
	    The	 directory name will be globbed (via csh) if necessary (and if
	    possible).	Articles saved by trn may be placed in the save direc‐
	    tory  or  in  a subdirectory thereof depending on the command that
	    you give and the state of the environment  variables  SAVEDIR  and
	    SAVENAME.  Any KILL files (see the K command in the Article Selec‐
	    tion section) also reside in this directory	 and  its  subdirecto‐
	    ries,  by  default.	  In addition, shell escapes leave you in this

	    enables debugging output.  See common.h for flag values.  Warning:
	    normally  trn  attempts to restore your .newsrc when an unexpected
	    signal or internal error occurs.  This is disabled when any debug‐
	    ging flags are set.

       -e   causes each page within an article to be started at the top of the
	    screen, not just the first page.  (It is similar to the -c	switch
	    of	more(1).)   You	 never	have  to read scrolling text with this
	    switch.  This is helpful especially at certain baud rates  because
	    you can start reading the top of the next page without waiting for
	    the whole page to be printed.  It works nicely in conjunction with
	    the -m switch, especially if you use half-intensity for your high‐
	    light mode.	 See also the -L switch.

	    sets the environment  variable  <name>  to	the  value  specified.
	    Within  trn, "&-ESAVENAME=%t" is similar to "setenv SAVENAME '%t'"
	    in csh, or "SAVENAME='%t'; export SAVENAME" in sh.	 Any  environ‐
	    ment  variables  set  with -E will be inherited by subprocesses of

       -f   will make trn avoid various sleep calls and the prompt  after  the
	    processing	of  the	 memorized commands that are intended to allow
	    you time to read a message before the screen clears.  This	allows
	    the	 advanced  user to cruise along a little faster at the expense
	    of readability.  The -t (terse) option turns on -f by default, but
	    you can override this by specifying +f after the -t option.

	    sets  the  prefix  string  for the 'F' follow-up command to use in
	    prefixing each line of the quoted article.	For example, "-F<tab>"
	    inserts  a	tab  on	 the front of each line (which will cause long
	    lines to wrap around, unfortunately), "-F>>>>" inserts  ">>>>"  on
	    every  line,  and "-F" by itself causes nothing to be inserted, in
	    case you want to reformat the text,	 for  instance.	  The  initial
	    default prefix is ">".

	    tells  trn	which line of the screen you want searched-for strings
	    to show up on when you search with the 'g' command within an arti‐
	    cle.  The lines are numbered starting with 1.  The initial default
	    is "-g1", meaning the first line of the screen.  Setting the  line
	    to less than 1 or more than the number of lines on the screen will
	    set it to the last line of the screen.

       -G   selects the "fuzzy" processing on the go command  when  you	 don't
	    type  in a valid group name.  With this option on trn will attempt
	    to find the group you probably meant to type, but it can be a lit‐
	    tle slow about it, so it's not on by default.

	    hides  (disables  the printing of) all header lines beginning with
	    string.  For instance, -hexp will  disable	the  printing  of  the
	    "Expires:" line.  Case is insignificant.  If <string> is null, all
	    header lines except Subject are hidden, and you may then use +h to
	    select those lines you want to see.	 You may wish to use the baud-
	    rate switch modifier below to hide more lines at lower baud rates.

	    works just like -h except that instead of setting the hiding  flag
	    for	 a  header  line, it sets the magic flag for that header line.
	    Certain header lines have magic behavior that  can	be  controlled
	    this  way.	 At  present,  the following actions are caused by the
	    flag for the particular line: the Date line	 prints	 the  date  in
	    local time if the group is threaded; the From line will only print
	    the commented portion of the user name; the Newsgroups  line  will
	    only  print	 when  there are multiple newsgroups; the Subject line
	    will be underlined and (when threaded) the keyword	'Subject:'  is
	    replaced  by  its  subject number (e.g. [1]); and the Expires line
	    will always be suppressed if there is nothing on it.  In fact, all
	    of	these  actions	are  the  default, and you must use +H to undo

	    specifies how long (in lines) to consider the initial page	of  an
	    article  -- normally this is determined automatically depending on
	    baud rate.	(Note that an entire article  header  will  always  be
	    printed  regardless	 of the specified initial page length.	If you
	    are working at low baud rate and wish to reduce the	 size  of  the
	    headers, you may hide certain header lines with the h switch.)

       -I   tells trn to append all new, unsubscribed groups to the end of the

       -j   forces trn to leave control characters unmolested in messages.

       -l   disables the clearing of the screen at the beginning of each arti‐
	    cle, in case you have a bizarre terminal.

       -L   tells  trn	to leave information on the screen as long as possible
	    by not blanking the screen between pages, and by  using  clear  to
	    end-of-line.  (The more(1) program does this.)  This feature works
	    only if you have the requisite termcap capabilities.   The	switch
	    has no effect unless the -e switch is set.

	    enables the marking of the last line of the previous page printed,
	    to help the user see where to  continue  reading.	This  is  most
	    helpful  when  less than a full page is going to be displayed.  It
	    may also be used in conjunction with the -e switch, in which  case
	    the	 page is erased, and the first line (which is the last line of
	    the previous page) is highlighted.	 If  -m=s  is  specified,  the
	    standout  mode will be used, but if -m=u is specified, underlining
	    will be used.  If neither =s or =u is specified, standout  is  the
	    default.  Use +m to disable highlighting.

       -M   forces  mailbox format in creating new save files.	Ordinarily you
	    are asked which format you want.

       -N   forces normal (non-mailbox) format in  creating  new  save	files.
	    Ordinarily you are asked which format you want.

       -o   will  act  like  old versions of trn and not junk cross-referenced
	    articles when using thread commands to junk articles in  the  cur‐
	    rent group (such as the selector's 'X' command).

	    specifies  the  selector's	mode  and (optionally) the sort order.
	    The modes are 'a'rticle, 's'ubject, or 't'hread.  The  orders  are
	    'd'ate,  's'ubject,	 'a'uthor,  article 'c'ount per group, or sub‐
	    ject-date 'g'roups.	 The order can be capitalized to  reverse  the
	    indicated  order.	For example, to choose the article selector in
	    subject order specify "-Oas".

       -p   tells trn to auto-select your postings and	their  replies	as  it
	    encounters them in the various groups you read.

       -q   bypasses the automatic check for new newsgroups when starting trn.

       -r   causes trn to restart in the last newsgroup read during a previous
	    session with trn.  It is equivalent to starting  up	 normally  and
	    then getting to the newsgroup with a g command.

       -s   with no argument suppresses the initial listing of newsgroups with
	    unread news, whether -c is specified or not.  Thus -c and  -s  can
	    be used together to test "silently" the status of news from within
	    your .login file.  If -s is followed  by  a	 number,  the  initial
	    listing  is	 suppressed  after  that  many lines have been listed.
	    Presuming that you have your .newsrc sorted into order  of	inter‐
	    est, -s5 will tell you the 5 most interesting newsgroups that have
	    unread news.  This is also a nice feature to use  in  your	.login
	    file,  since  it  not only tells you whether there is unread news,
	    but also how important the unread news is, without having to  wade
	    through  the entire list of unread newsgroups.  If no -s switch is
	    given -s5 is assumed, so just putting "rn  -c"  into  your	.login
	    file is fine.

	    causes  trn	 to enter subject search mode (^N) automatically when‐
	    ever an unthreaded newsgroup is started up	with  <number>	unread
	    articles  or more.	Additionally, it causes any 'n' typed while in
	    subject search mode to be interpreted as '^N'  instead.   (To  get
	    back  out  of  subject  search  mode, the best command is probably
	    '^'.)  If <number> is omitted, 3 is assumed.

       -t   puts trn into terse mode.  This is more cryptic but useful for low
	    baud  rates.   (Note  that your system administrator may have com‐
	    piled trn with either verbose or terse messages only to save  mem‐
	    ory.)   You may wish to use the baud-rate switch modifier below to
	    enable terse mode only at lower baud rates.

       -T   allows you to type ahead of rn.  Ordinarily rn will eat  typeahead
	    to	prevent	 your  autorepeating space bar from doing a very frus‐
	    trating thing when you accidentally hold it down.	If  you	 don't
	    have  a  repeating space bar, or you are working at low baud rate,
	    you can set this switch to prevent this behavior.  You may wish to
	    use	 the baud-rate switch modifier below to disable typeahead only
	    at lower baud rates.

       -u   sets the unbroken-subject-line mode in the selector, which	simply
	    truncates subjects that are too long instead of dumping the middle
	    portion prior to the last two words of the subject.

       -v   sets verification mode for commands.  When set, the command	 being
	    executed is displayed to give some feedback that the key has actu‐
	    ally been typed.  Useful when the system is heavily loaded and you
	    give a command that takes a while to start up.

	    Enable  the extended (threaded) features of trn beyond the rn com‐
	    patibility mode (this may be the default on your system, use +x if
	    you	 yearn	for  the  good ol' days).  The <number> is the maximum
	    number of article-tree lines (from 0 to 11) you want displayed  in
	    your  header.   Use	 the  <list>  to  choose which thread selector
	    styles you like ('s'hort, 'm'edium, or 'l'ong), and in what	 order
	    they  are selected with the 'L' command.  For example, use -xms to
	    start with the medium display mode and only switch between it  and
	    the short mode.  You can omit either or both of the parameters, in
	    which case a default of -x6lms is assumed.

	    If you like using the selector, you'll probably want to  use  this
	    option  to	make the selector command (+) the default when a news‐
	    group is started up with at least <number> unread articles.	 (Your
	    installer may have chosen to make -X1 the default on your system.)
	    It is also used to select  which  commands	you  want  to  be  the
	    defaults while using the thread selector.  For example, -X2XD will
	    make the thread selector the default command for entering a	 news‐
	    group with at least 2 unread articles, and set the default command
	    for the LAST page of the thread selector to be the X  command  and
	    the	 default  command  for	all  other  pages to be the D command.
	    Either or both parameters can be omitted, as well  as  the	second
	    default  command  (e.g.   -XX  would  change the default newsgroup
	    entry to use the selector and the default  command	for  the  last
	    page  of the selector to be 'X').  The default is -X1Z> if just -X
	    is specified.  To set the default selector commands without having
	    '+'	 be the default entry into a newsgroup, specify a high number,
	    like 9999.

       -/   sets SAVEDIR to "%p/%c" and SAVENAME to "%a", which means that  by
	    default  articles are saved in a subdirectory of your private news
	    directory corresponding to the name of the the current  newsgroup,
	    with  the  filename	 being the article number.  +/ sets SAVEDIR to
	    "%p" and SAVENAME  to  "%^C",  which  by  default  saves  articles
	    directly  to  your private news directory, with the filename being
	    the name of	 the  current  newsgroup,  first  letter  capitalized.
	    (Either  +/	 or -/ may be default on your system, depending on the
	    feelings of your news administrator when he, she or	 it  installed
	    trn.)   You may, of course, explicitly set SAVEDIR and SAVENAME to
	    other values -- see discussion in the environment section.

       Any switch may be selectively applied according to  the	current	 baud-
       rate.  Simply prefix the switch with +speed to apply the switch at that
       speed or greater, and -speed to apply the switch at that speed or less.
       Examples:  -1200-hposted	 suppresses  the  Posted  line at 1200 baud or
       less; +9600-m enables marking at 9600 baud or more.  You can apply  the
       modifier	 recursively  to itself also: +300-1200-t sets terse mode from
       300 to 1200 baud.

       Similarly, switches may be selected based on terminal type:

	    -=vt100+T	   set +T on vt100
	    -=tvi920-ETERM=mytvi     get a special termcap entry
			   set up special key-mappings
	    +=paper-v	   set verify mode if not hardcopy

       Some switch arguments, such as environment variable values, may require
       spaces  in  them.   Such	 spaces should be quoted via ", ', or \ in the
       conventional fashion, even when passed via TRNINIT or the & command.

       Regular Expressions

       The patterns used in article searching are regular expressions such  as
       those used by ed(1).  In addition, \w matches an alphanumeric character
       and \W a non-alphanumeric.  Word boundaries may be matched by  \b,  and
       non-boundaries  by  \B.	The bracketing construct \( ... \) may also be
       used, and \digit matches the digit'th substring, where digit can	 range
       from  1	to 9.  \0 matches whatever the last bracket match matched.  Up
       to 10 alternatives may given in a pattern, separated by	\⎪,  with  the
       caveat that \( ... \⎪ ... \) is illegal.

       Interpretation and Interpolation

       Many  of the strings that trn handles are subject to interpretations of
       several types.  Under filename expansion, an initial "~/" is translated
       to  the	name  of your home directory, and "~name" is translated to the
       login directory for the user specified.	Filename expansion  will  also
       expand  an  initial  environment variable, and also does the backslash,
       caret and percent expansion mentioned below.

       All interpreted strings go through backslash, caret and percent	inter‐
       pretation.   The backslash escapes are the normal ones (such as \n, \t,
       \033, etc.).  The caret escapes indicate control codes (such as ^i, ^l,
       etc.).	If  you wish to pass through a backslash or a caret it must be
       escaped with a backslash.  The special percent escapes are  similar  to
       printf  percent	escapes.  These cause the substitution of various run-
       time values into the string.  The following are currently recognized:

       %a      Current article number.

       %A      Full name of current article (%P/%c/%a).

       %b      Destination of last save command, often a mailbox.

       %B      The byte offset to the beginning of the part of the article  to
	       be  saved,  set	by the save command.  The 's' and 'S' commands
	       set it to 0, and the 'w' and 'W' commands set it	 to  the  byte
	       offset of the body of the article.

       %c      Current newsgroup, directory form.

       %C      Current newsgroup, dot form.

       %d      Full name of newsgroup directory (%P/%c).

       %D      "Distribution:" line from the current article.

       %e      The last command executed to extract data from an article.

       %E      The last directory where an extracted file went.

       %f      "From:"	line from the current article, or the "Reply-To:" line
	       if there is one.	 This differs from %t in that  comments	 (such
	       as the full name) are not stripped out with %f.

       %F      "Newsgroups:"  line  for a new article, constructed from "News‐
	       groups:" and "Followup-To:" lines of current article.

       %h      Name of the header file to pass to the  mail  or	 news  poster,
	       containing all the information that the poster program needs in
	       the form of a message header.  It may also contain  a  copy  of
	       the  current  article.	The  format of the header file is con‐
	       trolled by the MAILHEADER and NEWSHEADER environment variables.

       %H      Host name (your machine's name).

       %i      "Message-I.D.:" line from the current article, with <>  guaran‐

       %I      The reference indication mark (see the -F switch.)

       %l      The news administrator's login name, if any.

       %L      Login name (yours).

       %m      The current mode of trn, for use in conditional macros.

		    i	 Initializing.
		    n	 Newsgroup-selection level.
		    f	 end (Finis) of newsgroup-selection level.
		    t	 the Thread/subject/article selector.
		    a	 Article level (What next?).
		    e	 End of the article level.
		    p	 Pager level (MORE prompt).
		    u	 Set-unread prompt.
		    d	 selector moDe prompt.
		    o	 selector Order prompt.
		    m	 Memorize thread command prompt.
		    r	 memoRize subject command prompt.
		    k	 processing memorized (KILL file) commands.
		    A	 Add this newsgroup?
		    B	 aBandon confirmation.
		    C	 Catchup confirmation.
		    D	 Delete bogus newsgroups?
		    F	 Is follow-up a new topic?
		    M	 Use mailbox format?
		    R	 Resubscribe to this newsgroup?

	       Note  that  yes/no questions are all upper-case modes.  If, for
	       example, you wanted to disallow defaults on  all	 yes/no	 ques‐
	       tions, you could define the following macro:

	       \040 %(%m=[A-Z]?h: )

       %M      The  number  of	articles marked to return via the 'M' command.
	       If the same article is Marked multiple times,  "%M"  counts  it
	       multiple times in the current implementation.

       %n      "Newsgroups:" line from the current article.

       %N      Full name (yours).

       %o      Organization (yours).

       %O      Original working directory (where you ran rn from).

       %p      Your private news directory, normally ~/News.

       %P      Public  news  spool directory, normally /usr/spool/news on sys‐
	       tems that don't use NNTP.

       %r      Last reference on references line of  current  article  (parent
	       article id).

       %R      References  list for a new article, constructed from the refer‐
	       ences and article ID of the current article.

       %s      Subject, with all Re's and (nf)'s stripped off.

       %S      Subject, with one "Re:" stripped off.

       %t      "To:" line derived from the "From:" and	"Reply-To:"  lines  of
	       the  current  article.	This always returns an Internet format

       %T      "To:" line derived from the "Path:" line of the current article
	       to produce a uucp path.

       %u      The number of unread articles in the current newsgroup.

       %U      The  number  of	unread	articles in the current newsgroup, not
	       counting the the current article.  When threads	are  selected,
	       this count reflects only selected articles.

       %v      The  number  of	unselected  articles, not counting the current
	       article if it is unselected.

       %w      The directory where mthreads keeps its tmp files.

       %W      The directory where thread files are placed.

       %x      The news library directory.

       %X      The rn library directory.

       %z      The length of the current article in bytes.

       %Z      The number of selected threads.

       %~      Your home directory.

       %.      The directory containing your dot files,	 which	is  your  home
	       directory  unless  the  environment  variable DOTDIR is defined
	       when rn is invoked.

       %#      The current count for a multi-file save, starting with 1.  This
	       value  is  incremented  by one for each file saved or extracted
	       within a single command.

       %$      Current process number.

       %/      Last search string.

       %%      A percent sign.

       %{name} or %{name-default}
	       The environment variable "name".

       %[name] The value of header line "Name:" from the current article.  The
	       "Name: "	 is  not  included.  For example "%D" and "%[distribu‐
	       tion]" are equivalent.  The name must be spelled out in full.

	       Inserts the output of the command, with any  embedded  newlines
	       translated to space.

	       Prints  prompt  on  the	terminal,  then inputs one string, and
	       inserts it.

	       If test_text matches pattern, has the value  then_text,	other‐
	       wise  else_text.	  The ":else_text" is optional, and if absent,
	       interpolates the null string.  The = may be replaced with != to
	       negate  the  test.   To	quote any of the meta-characters ('=',
	       '?', ':', or ')'), precede with a backslash.

       %digit  The digits 1 through 9 interpolate the string  matched  by  the
	       nth  bracket  in	 the last pattern match that had brackets.  If
	       the last pattern had alternatives, you may not know the	number
	       of  the	bracket	 you want -- %0 will give you the last bracket

       Modifiers: to capitalize the first letter, insert '^':  "%^C"  produces
       something like "Rec.humor".  Inserting '_' causes the first letter fol‐
       lowing the last '/' to be capitalized: "%_c" produces "rec/Humor".

       Inserting '\' will insert a backslash before any characters that	 would
       be  magic  in  a	 regular  expression,  including  '%':	"%\C" produces

       Inserting ":FMT" will format the result according to  the  printf-style
       FMT  string: "%:-50.50s" left-justifies the subject into a 50 character

       The following environment variables are paid attention to by  trn.   In
       general	the default values assumed for these variables by trn are rea‐
       sonable, so if you are using trn for the first  time,  you  can	safely
       ignore  this  section.  Note that the defaults below may not correspond
       precisely to the defaults on your system.  To find the actual  defaults
       you  would  need	 to  look  in  config.h and common.h in the trn source
       directory, and the file INIT in the trn library directory.

       Those variables marked (%) are subject to %  interpolation,  and	 those
       marked (~) are subject to both % interpolation and ~ interpretation.

       ATTRIBUTION (%)
	       Gives the format of the attribution line in front of the quoted
	       article included by an F command.

	       Default: In article %i %f writes:

	       When trn is checking for new newsgroups and finds one  matching
	       one of the patterns in AUTOSUBSCRIBE, the new group is automat‐
	       ically added to the end of the .newsrc, subscribed.  Newsgroups
	       not matching this or AUTOUNSUBSCRIBE, below, are offered to the

	       AUTOSUBSCRIBE is a comma separated list of  newsgroup  patterns
	       ala  'o', '/', etc.  It can also include "but not" entries pre‐
	       ceded by '!'.  "a,b,!c,d" is read as "matching a or  b,	unless
	       it also matches c; matching d regardless".  Another way to look
	       at it is "(((a or b) and not c) or d)".	To automatically  sub‐
	       scribe  to  all	local  groups  but  be	choosy about non-local
	       groups, one might say "*,!*.*".

	       Default: (none)

	       AUTOUNSUBSCRIBE is very similar to  AUTOSUBSCRIBE,  above,  but
	       new  newsgroups	matching it are automatically added to the end
	       of the .newsrc file,  unsubscribed.   If	 a  newsgroup  matches
	       AUTOSUBSCRIBE, AUTOUNSUBSCRIBE is not consulted.

	       Default: (none)

       CANCEL (~)
	       The shell command used to cancel an article.

	       Default: inews -h < %h

	       The  format  of the file to pass to the CANCEL command in order
	       to cancel an article.

	       Newsgroups: %n
	       Subject: cmsg cancel %i
	       References: %R
	       Reply-To: %L@%H (%N)
	       Distribution: %D
	       Organization: %o

	       %i cancelled from rn.

       DOTDIR  Where to find your dot files,  if  they	aren't	in  your  home
	       directory.  Can be interpolated using "%.".

	       Default: $HOME

       EDITOR (~)
	       The name of your editor, if VISUAL is undefined.

	       Default:	 whatever your news administrator compiled in, usually

       EXSAVER (%)
	       The shell command to execute in order to extract data to either
	       /bin/sh or a user-specified command.

	       Default: tail +%Bc %A ⎪ %e

       FIRSTLINE (%)
	       Controls	 the  format  of  the  line displayed at the top of an
	       article.	 Warning: this may go away.

	       The  default  (ignoring	the  Marked  to	 return	  display   in
	       unthreaded groups) is approximately:

	       %C #%a%(%Z=^0$?%(%U!=^0$? (%U more\)): (%U + %v more\))

	       If defined, contains a regular expression which matches article
	       lines to be hidden, in order, for instance, to suppress	quoted
	       material.   A  recommended  string for this purpose is "^>...",
	       which doesn't hide lines with only '>', to give some indication
	       that  quoted  material  is  being skipped.  If you want to hide
	       more than one pattern, you can use "⎪" to separate the alterna‐
	       tives.  You can view the hidden lines by restarting the article
	       with the 'v' command.

	       There is some overhead involved in matching each	 line  of  the
	       article	against a regular expression.  You might wish to use a
	       baud-rate modifier to enable this  feature  only	 at  low  baud

	       Default: undefined

       HOME    Your  home  directory.  Affects ~ interpretation, and the loca‐
	       tion of your dot files if DOTDIR is not defined.

	       Default: $LOGDIR

       KILLGLOBAL (~)
	       Where to find the KILL file to apply to every  newsgroup.   See
	       the '^K' command at the newsgroup-selection level.

	       Default: %p/KILL

       KILLLOCAL (~)
	       Where to find the KILL file for the current newsgroup.  See the
	       commands 'K' and '^K' at the article selection level,  and  the
	       search modifier 'K'.

	       Default: %p/%c/KILL

       LOGDIR  Your  home directory if HOME is undefined.  Affects ~ interpre‐
	       tation, and the location of your dot files  if  DOTDIR  is  not

	       Default: none.

	       Explanation: you must have either $HOME or $LOGDIR.

       LOGNAME Your  login  name,  if  USER is undefined.  May be interpolated
	       using "%L".

	       Default: value of getlogin().

	       The format used by strftime() to print  the  local  time.   The
	       Date  line  is  only  displayed	in  local time if the group is
	       threaded (see the -H option for more information on Date).

	       Default: %a %b %e %X %Z %Y

	       which is the same format as the date(1) command.

       MAILCALL (~)
	       What to say when there is new mail.

	       Default: (Mail)

       MAILFILE (~)
	       Where to check for mail.

	       Default: /usr/spool/mail/%L

       MAILHEADER (%)
	       The format of the header file  for  replies.   See  also	 MAIL‐


	       To: %t
	       Subject: %(%i=^$?:Re: %S
	       Newsgroups: %n
	       In-Reply-To: %i)
	       %(%[references]!=^$?References\: %[references]
	       )Organization: %o
	       Bcc: \n\n

       MAILPOSTER (~)
	       The shell command to be used by the reply commands (r and R) in
	       order to allow you to enter and deliver the response.  trn will
	       not  itself  call upon an editor for replies -- this is a func‐
	       tion of the program called by trn.  See also MAILHEADER.

	       Default: QUOTECHARS=%I Rnmail -h %h

       MBOXSAVER (~)
	       The shell command to save an article in mailbox format.

	       Default: %X/mbox.saver %A %P %c %a %B %C "%b" \
	       "From %t %`date`"

	       Explanation: the first seven arguments  are  the	 same  as  for
	       NORMSAVER.   The eighth argument to the shell script is the new
	       From line for the article, including the posting date,  derived
	       either  directly from the Posted: line, or not-so-directly from
	       the Date: line.	Header munging at its finest.

	       The string to insert in the group  summary  line,  which	 heads
	       each article, for a moderated group.  See also NOPOSTRING.

	       Default: " (moderated)"

       NAME    Your full name.	May be interpolated using "%N".

	       Default: name from /etc/passwd, or ~/.fullname.

       NEWSHEADER (%)
	       The  format  of the header file for follow-ups.	See also NEWS‐


	       %(%[followup-to]=^$?:X-ORIGINAL-NEWSGROUPS: %n
	       )Newsgroups: %(%F=^$?%C:%F)
	       Subject: %(%S=^$?%"\n\nSubject: ":Re: %S)
	       %(%R=^$?:References: %R
	       %(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
	       )Distribution: %(%i=^$?%"Distribution: ":%D)
	       Organization: %o
	       Keywords: %[keywords]
	       Cc: \n\n

       NEWSORG Either the name of your organization, or the  name  of  a  file
	       containing  the	name  of your organization.  (For use at sites
	       where the ORGANIZATION environmental  variable  is  already  in
	       use.   NEWSORG will override ORGANIZATION if both are present.)
	       May be interpolated using "%o".

	       Default: whatever your news administrator compiled in.

       NEWSPOSTER (~)
	       The shell command to be used by the follow-up commands  (f  and
	       F)  in  order  to  allow you to enter and post a follow-up news
	       article.	 trn will not itself call upon an editor  for  follow-
	       ups  --	this  is a function of the program called by trn.  See
	       also NEWSHEADER.

	       Default: QUOTECHARS=%I Pnews -h %h

       NEWSRC  Your newsgroup subscription list.

	       Default: $HOME/.newsrc

	       The hostname of your NNTPSERVER.	 [This does not	 apply	unless
	       you are running the NNTP version of rn.]

	       Default:	 the  hostname	listed	in  the	 server	 file, usually

	       The string to insert in the group  summary  line,  which	 heads
	       each  article,  for  a  group  to  which	 local	posting is not
	       allowed.	 See also MODSTRING.

	       Default: " (no posting)"

       NORMSAVER (~)
	       The shell command to save an article in the  normal  (non-mail‐
	       box) format.

	       Default: %X/norm.saver %A %P %c %a %B %C "%b"

	       Either  the  name  of  your organization, or the name of a file
	       containing the name of your organization.  (If NEWSORG is  set,
	       it  will	 override  ORGANIZATION.)   May	 be interpolated using

	       Default: whatever your news administrator compiled in.

	       If defined, contains a regular expression which matches article
	       lines  to  be  treated  as  form-feeds.	There are at least two
	       things you might want to do with this.  To  cause  page	breaks
	       between	 articles   in	a  digest,  you	 might	define	it  as
	       "^--------".  To force a page break  before  a  signature,  you
	       could  define  it  as "^-- $".  (Then, when you see "--" at the
	       bottom of the page, you can skip the signature if you so desire
	       by  typing  'n'	instead	 of space.)  To do both, you could use
	       "^--".  If you want to break on more than one pattern, you  can
	       use "⎪" to separate the alternatives.

	       There  is  some	overhead involved in matching each line of the
	       article against a regular expression.  You might wish to use  a
	       baud-rate  modifier  to	enable	this  feature only at low baud

	       Default: undefined

       PIPESAVER (%)
	       The shell command to execute in order to accomplish a save to a
	       pipe  ("s ⎪ command"  or	 "w ⎪ command").  The command typed by
	       the user is substituted in as %b.

	       Default: %(%B=^0$?<%A:tail +%Bc %A ⎪) %b

	       Explanation: if %B is 0, the command is "<%A %b", otherwise the
	       command is "tail +%Bc %A ⎪ %b".

       REPLYTO The value of the "Reply-To:" header, if needed.

       RNINIT  This variable is used when initializing trn in rn-compatibility
	       mode (see the -x switch) or when	 the  TRNINIT  variable	 isn't
	       defined.	 See the TRNINIT variable for a description.

       RNMACRO (~)
	       The  name  of  the file containing macros and key mappings when
	       running trn as rn.  See also the TRNMACRO variable and the CUS‐
	       TOM MACROS section.

	       Default: %./.rnmac

       SAVEDIR (~)
	       The  name of the directory to save to, if the save command does
	       not specify a directory name.

		  If -/ is set: %p/%c
		  If +/ is set: %p

       SAVENAME (%)
	       The name of the file to save to, if the save  command  contains
	       only a directory name.

		  If -/ is set: %a
		  If +/ is set: %^C

	       The  characters used by the thread selector to select the asso‐
	       ciated thread of discussion.  You can specify up to 64  visible
	       characters,  including  upper- and lower-case letters, numbers,
	       and many punctuation characters.	 Selection characters override
	       command	characters  in the selector, but are not excluded from
	       macro expansion, so be careful.
	       Default: abdefgijlorstuvwxyz1234567890BCFGHIKMVW
	       (You'll notice various characters are omitted to allow them  to
	       be typed as commands in the selector.)

       SHELL   The  name of your preferred shell.  It will be used by the '!',
	       'S' and 'W' commands.

	       Default: whatever your news administrator compiled in.

       SUBJLINE (%)
	       Controls the format of the lines displayed by the  '='  command
	       at the article selection level.

	       Default: %s

	       The format of the header file for a supersede article.


	       From: %L@%H (%N)
	       Newsgroups: %n
	       Subject: %S
	       Distribution: %D
	       Organization: %o
	       Supersedes: %i

       TERM    Determines  which termcap entry to use, unless TERMCAP contains
	       the entry.

       TERMCAP Holds either the name of your termcap file, or a termcap entry.

	       Default: /etc/termcap, normally.

       TRNINIT Default values for switches may be passed  to  trn  by  placing
	       them  in the TRNINIT variable (or RNINIT if you're starting trn
	       in rn-compatibility mode).  Any switch that is set in this  way
	       may  be	overruled  on the command line, or via the '&' command
	       from within trn.	 Binary-valued	switches  that	are  set  with
	       "-switch" may be unset using "+switch".

	       If  TRNINIT begins with a '/' it is assumed to be the name of a
	       file containing switches.  You can put comments in this file by
	       preceding  them with a '#' as long as this is the first charac‐
	       ter on a line or it follows some	 white-space  (which  delimits
	       the switches in the file).  If you want to set many environment
	       variables but don't want to keep them all in your  environment,
	       or  if  the  use of any of these variables conflicts with other
	       programs, you can use this feature along with the -E switch  to
	       set the environment variables upon startup.

	       Default: " ".

       TRNMACRO (~)
	       The  name  of  the file containing macros and key mappings.  If
	       the file is not found, the RNMACRO variable is used to look for
	       your rn macros.	For information on what to put into this file,
	       see the CUSTOM MACROS section.

	       Default: %./.trnmac

       UNSHAR (~)
	       The shell  command  to  execute	in  order  to  accomplish  the
	       unshar'ing of a shell archive.

	       Default: /bin/sh

       USER    Your login name.	 May be interpolated using "%L".

	       Default: $LOGNAME

       VISUAL (~)
	       The name of your editor.

	       Default: $EDITOR

       YOUSAID (%)
	       Gives the format of the attribution line in front of the quoted
	       article included by an R command.

	       Default: In article %i you write:

       On startup trn attempts to build a set of macros that map  your	keypad
       arrow keys to useful functions.	These default actions are mentioned in
       the prior description of each level's commands.	If you don't like this
       (or  trn	 gets it wrong), you can disable the automatic macros by using
       the -A option.

       When trn starts up it looks for a  file	containing  macro  definitions
       (see environment variables TRNMACRO and RNMACRO).  Any sequence of com‐
       mands may be bound to any sequence of keys, so you  could  re-map  your
       entire  keyboard	 if you desire.	 Blank lines or lines beginning with #
       in the macro file are considered comments; otherwise trn looks for  two
       fields separated by white space.	 The first field gives the sequence of
       keystrokes that trigger the macro,  and	the  second  field  gives  the
       sequence of commands to execute.	 Both fields are subject to % interpo‐
       lation, which will also translate backslash and caret sequences.	  (The
       keystroke  field	 is interpreted at startup time, but the command field
       is interpreted at macro execution time so that you may refer to %  val‐
       ues in a macro.)	 For example, if you want to reverse the roles of car‐
       riage return and space in trn

       ^J   \040
       ^M   \040
       \040 ^J

       will do just that.  By default, all characters in the command field are
       interpreted as the canonical trn characters, i.e. no macro expansion is
       done.  Otherwise the above pair of macros would cause an infinite loop.
       To  force  macro expansion in the command field, enclose the macro call
       with ^( ... ^) thusly:

       @s   ⎪mysavescript
       @w   w^(@s^)

       You can use the %() conditional construct to construct macros that work
       differently  under different circumstances.  In particular, the current
       mode (%m) of trn could be used to make a command that only works	 at  a
       particular  level.   This  is particularly vital for the selector which
       uses most of the lower-case letters to select the  associated  item  in
       its display.  For example,

       a    %(%m=t?a:s art.hold\n)

       will return the original letter (a) in the selector, and the command "s
       art.hold\n" everywhere else.

       %(%{TERM}=vt100?^[[O)	/^J

       will do the binding only if the terminal type is vt100, though  if  you
       have  many  of these it would be better to have separate files for each

       If you want to bind a macro to  a  function  key	 that  puts  a	common
       garbage	character  after  the sequence (such as the carriage return on
       the end of Televideo 920 function sequences), DO NOT put	 the  carriage
       return  into  all the sequences or you will waste a CONSIDERABLE amount
       of internal storage.  Instead of "^AF^M", put "^AF+1", which  indicates
       to trn that it should gobble up one character after the F.

       Here's  a  quick	 run-down  of trn's features and commands aimed at the
       knowledgeable rn or trn user.

       The addition of true reference-line threading is	 one  of  the  biggest
       improvements  over  rn.	This threading allows you to read a discussion
       in reply order with an article's replies being attached to the  article
       that  inspired them.  Threads will encompass multiple subjects whenever
       a reply to an article in the thread arrives with a  different  subject.
       This  is usually done to better indicate the topic in the reply when it
       diverges from the original subject.

       Another big improvement is the selector, which is bound to the '+' key.
       The  selector displays a list of threads, subjects, or individual arti‐
       cles to allow you to select the topics  that  interest  you  by	typing
       their  associated  letter.   The	 difference between the thread and the
       subject selector is that the subject  selector  displays	 all  subjects
       with  a	separate  selection letter, even those tied together via their
       references.  This can be quite useful if you select  some  threads  and
       desire  to  weed	 out some extraneous discussions: you could switch the
       selector into exclusive mode ('E' shows only selected threads) and then
       into  subject  mode ('Ss') to separate the threads into their component
       subjects and deselect or kill the subjects you don't care  about.   You
       don't  have  to go to all this trouble using the selector if you prefer
       to just hit the 'k' key when you start reading  a  subject  you're  not
       interested  in.	 The  selector	can also switch between showing unread
       articles and articles that have already	been  read,  allowing  you  to
       selectively  re-read discussions (this is the 'U' command in the selec‐

       Another threaded addition is the article-tree  display  in  the	upper-
       right  corner  of the header.  Looking at the tree gives you a feel for
       how the articles you are reading relate to each other, allowing you  to
       see  at	a glance when there are lots of replies and decide if you want
       to junk an uninteresting set of replies or perhaps tough it out.

       The header display has also been modified to hide a few more  lines  by
       default	(e.g. References), but, as always, you can override these with
       -h.  There is also some more "magic" in the header: the From header can
       be  trimmed to be just the comment portion (if available), and the Date
       header is displayed in local time (by default).	Use -H and +H to  turn
       header magic on and off.

       Once  you begin reading articles, use the regular movement commands (n,
       N, p, P, etc.) as you normally would.  You'll find that these  commands
       track the reply order shown in the tree display.	 Then try using ^N and
       ^P, which follow a subject in  the  order  the  articles	 were  posted.
       Finally,	 check out the [, ], (, ), {, and } commands to move around in
       the article tree a bit more directly.  The first four  commands	should
       also  be bound to your keypad's arrow keys, making them easier to type.
       For example, typing '[' (left) takes you to your parent	article,  even
       if  it  was  already  read,  which is very useful for tracking down the
       cited portion of the article in its original context.

       There are additional kill commands for the entire thread	 (J)  and  the
       current article and all its replies (,).

       The  KILL files have been extended and the commands inside them are now
       referred to memorized commands, since they are often used for selection
       rather  than  killing  of  articles.  There are new, easier ways to add
       memorized commands using the 'A'dd and 'T'hread commands.  The 'A' com‐
       mand  is	 subject-oriented,  while  the 'T' command is article-oriented
       (meaning they affect a specific set of articles rather than any article
       that  happens  to  have	a matching subject).  They both prompt you for
       what kind of command you want to	 add,  making  both  auto-killing  and
       auto-selecting just as easy.

       There is also an easy way to skip around among the various threads with
       the < and > commands.  Use them if you want to skip a  set  of  article
       and read them later instead of junking them.

       Note: your news administrator has the option of turning thread process‐
       ing off for individual groups, and thus it is possible for some	groups
       to  not	have  any  pre-processed thread information available for use.
       When trn encounters such a group, it generates the  thread  information
       on  the	fly  while  entering  the  group.  For really large groups (or
       really slow systems), this can take an appreciable amount of time.   If
       you  can't  talk	 your news administrator into pre-threading the group,
       you can turn off the threading on a group-by-group basis using the  't'
       command	at  the	 newsgroup-selection level.  Groups turned off in this
       way are read in the rn style --	articles  arranged  in	arrival	 order
       unless  you  specify  the  -S  option, which reads the articles in date
       order by subject.

       Take note of the "e dir" command, which is used to extract a shell  ar‐
       chive  or uuencoded file into the specified directory.  It is even pos‐
       sible to extract other data formats if you specify the appropriate fil‐
       ter command (e.g. "e dir⎪cmd".

       Also,  if you plan to use macro definitions, it is good to keep in mind
       that the selector uses most of the lower-case  letters  for  selection,
       and  thus  it  is  a good idea to explicitly set the mode(s) in which a
       macro applies.  For example, if you want to press 'f' from the  article
       pager/selector  to forward the current article to the user "smith", you
       could define:

	    f	 %(%m=[pa]?⎪mail smith\n:f)

       This checks the current mode (%m) and if it is 'p' or 'a' it expands it
       to the string "⎪mail smith\n", otherwise it returns the letter 'f'.  In
       some cases, you may simply wish to exclude the selector	from  a	 macro
       with the conditional "%m!=t".

       Finally,	 you'll	 probably  want	 to  use the new options, -x and -X to
       ensure that all the newest  features  are  available  for  use.	 These
       options	might  be  on  by default, depending on how your administrator
       decided to install trn.

       Rn was created by Larry Wall <>
       and is now under the direction of Stan Barber <>.
       Threaded version by Wayne Davison <>
       (Mail all bug reports for trn to Wayne.)
       Regular expression routines are borrowed from emacs, by James Gosling.

       %./.newsrc  status of your news reading

		   backup copy of your .newsrc from start of session

       %./.rnlock  lock file so you don't screw up your .newsrc

       %./.rnlast  info from last run of rn

       %./.rnsoft  soft pointers into /usr/lib/news/active to  speed  startup,
		   synchronous with .newsrc

       %./.rnhead  temporary header file to pass to a mailer or news poster

		   macro and keymap definitions

       %p	   your news save directory, usually ~/News

       %x/active   the list of active newsgroups, usually /usr/lib/news/active
		   on systems that don't use NNTP

       %P	   the public news spool directory, usually /usr/spool/news on
		   systems that don't use NNTP

       %X/INIT	   system-wide default switches

       newsrc(5), more(1), readnews(1), Pnews(1), Rnmail(1)

       Generally self-documenting, as they say.

       The -h switch can only hide header lines that trn knows about.

       The '-' command doesn't cross newsgroup boundaries, and only undoes the
       last article selection.

       If you edit your .newsrc while trn is running, trn  will	 happily  wipe
       out your changes when it decides to write out the .newsrc file.

       Marking	of  duplicate  articles as read in cross-referenced newsgroups
       will not work unless the Xref patch is installed in inews.

       If you get carried away with % or escape substitutions, you  can	 over‐
       flow buffers.

4.3 Berkeley Distribution	     LOCAL				TRN(1)

List of man pages available for 4.4BSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net