Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NN(1)			     General Commands Manual			   NN(1)

NAME
     nn - efficient net news interface (No News is good news)

SYNOPSIS
     nn [ options ] [ newsgroup  |  +folder  |	file ]...
     nn -g [ -r ]
     nn -a0 [ newsgroup ]...

DESCRIPTION
     Net  news	is  a  world-wide information exchange service covering numerous
     topics in science and every day life.  Topics are organized in news groups,
     and these groups are open for everybody to post articles on a  subject  re-
     lated to the topic of the group.

     Nn  is a `point-and-shoot' net news interface program, or a news reader for
     short (not to be confused with the human news reader).  When  you	use  nn,
     you can decide which of the many news groups you are interested in, and you
     can  unsubscribe  to  those which don't interest you.  nn will let you read
     the new (and old) articles in each of the groups you subscribe to	using  a
     menu  based  article  selection  prior  to reading the articles in the news
     group.

     When a news group is entered, nn will locate all the presently unread arti-
     cles in the group, and extract their sender, subject,  and  other	relevant
     information.   This  information  is then rearranged, sorted, and marked in
     various ways to give it a pleasant format	when  it  is  presented  on  the
     screen.

     This  will  be  done very quickly, because nn uses the NOV database via the
     NNTP XOVER command.  The news server to use can be  overridden  by  setting
     the  environment  variable  $NNTPSERVER  to the name of the system (such as
     news.newserver.com), or by setting the variable nntp-server (on the command
     line only, since  it  is  looked  at  before  the	init  file),  as  "nntp-
     server=news.some.domain").   If you use multiple servers, you probably want
     to set the nn-directory and newsrc variables on the command line to an  al-
     ternate  names  as well, since some of the data files are server dependent.
     If you are using a slow tcp link (such as ppp over a modem) and  NNTP,  see
     the NOTES section at the end of this manual.

     When  the	article  menu appears on the screen, nn will be in a mode called
     selection mode.  In this mode, the articles which seems to  be  interesting
     can  be  selected	by single keystrokes (using the keys a-z and 0-9).  When
     all the interesting articles among the ones presently displayed  have  been
     selected, the space bar is hit, which causes nn to enter reading mode.

     In  reading mode, each of the selected articles will be presented.  You use
     the space bar to go on to the next page of the current article, or  to  the
     next article.  Of course, there are all sorts of commands to scroll text up
     and  down,  skip  to the next article, responding to an article, decrypt an
     article, and so on.

     When all the selected articles in the current group  have	been  read,  the
     last  hit	on  the  space bar will cause nn will continue to the next group
     with unread articles, and enter selection mode on that group.

FREQUENTLY USED OPTIONS
     nn accepts a lot of command line options, but here only the frequently used
     options are described.  Options can also be set  permanently  by  including
     appropriate  variable  settings  in the init file described later.  All op-
     tions are described in the section on Command Line Options towards the  end
     of this manual.

     The frequently used command line options are:

     -a0    Catch  up on unread articles and groups.  See the section "Catch up"
	    below.

     -g     Prompt for the name of a news group or folder to  be  entered  (with
	    completion).

     -r     Used with -g to repeatedly prompt for groups to enter.

     -lN    Print  only  the first N lines of the first page of each article be-
	    fore prompting to continue.  This is useful on  slow  terminals  and
	    modem  lines  to  be able to see the first few lines of longer arti-
	    cles.

     -sWORD
	    Collect only articles which contain the string WORD in their subject
	    (case is ignored).	This is normally combined with the -x and -m op-
	    tions to find all articles on a specific subject.

     -s/regexp
	    Collect only articles whose subject matches the  regular  expression
	    regexp.   This  is	normally  combined with the -x and -m options to
	    find all articles on a specific subject.

     -nWORD or -n/regexp
	    Same as -s except that it matches on the sender's  name  instead  of
	    the article's subject.  This is normally combined with the -x and -m
	    options  to  find all articles from a specific author.  It cannot be
	    mixed with the -s option!

     -i     Normally searches with -n and -s are case independent.   Using  this
	    option, the case becomes significant.

     -m     Merge all articles into one `meta group' instead of showing them one
	    group  at a time.  This is normally used together with the -x and -s
	    options to get all the articles on a specific subject presented on a
	    single menu (when you don't care about which group they belong  to).
	    When -m is used, no articles will be marked as read.

     -x[N]  Present  (or  scan) all (or the last N) unread as well as read arti-
	    cles.  When this option is used, nn will never mark unread	articles
	    as read (i.e. .newsrc is not updated).

     -X     Read/scan  unsubscribed groups also.  Most useful when looking for a
	    specific subject in all groups, e.g.
		 nn -mxX -sSubject all

     news.group  or  file  or  +folder
	    If none of these arguments are given,  all	subscribed  news  groups
	    will  be  used.   Otherwise,  only	the specified news groups and/or
	    files will be collected and presented.  In specifying a news groups,
	    the following `meta notation' can be used:
	    If the news group ends with a `.' (or `.all'), all subgroups of  the
	    news group will be collected, e.g.
		 comp.sources.
	    If a news group starts with a `.' (or `all.'), all the matching sub-
	    groups will be collected, e.g.
		 .sources.unix
	    The argument `all' identifies all (subscribed) news groups.

COMMAND INPUT
     In  general,  nn  commands consist of one or two key-strokes, and nn reacts
     instantly to the commands you give it; you don't have to enter return after
     each command (except where explicitly stated).

     Some commands have more serious effects than others, and therefore  nn  re-
     quests  you  to confirm the command.  You confirm by hitting the the y key,
     and reject by hitting the n key.  Some `trivial' requests may also be  con-
     firmed  simply by hitting space.  For example, to confirm the creation of a
     save file, just hit space, but if one or more directories also have  to  be
     created, you must enter y.

     Many  commands will require that you enter a line of text, e.g. a file name
     or a shell command.  If you enter space as the first character on	a  line,
     the  line will be filled with a default value (if one is defined).  For ex-
     ample, the default value for a file name is the last file name you have en-
     tered, and the default shell command is your previous shell  command.   You
     can  edit	this  default  value as well as a directly typed text, using the
     following editing commands.  The erase, kill, and interrupt  keys	are  the
     keys  defined by the current tty settings.  On systems without job control,
     the suspend key will be control-Z while it is the current suspend character
     on system with job control.

     erase
	    Delete the last character on the line.

     delete-word   (normally ^W)
	    Delete the last word or component of the input.

     kill
	    Delete all characters on the line.

     interrupt	and  control-G
	    Cancel the command which needs the input.

     suspend
	    Suspend nn if supported by the system.  Otherwise, spawn an interac-
	    tive shell.

     return
	    Terminate the line, and continue with the command.

     Related  variables:  erase-key,  flow-control,  flush-typeahead,  help-key,
     kill-key, word-key.

BASIC COMMANDS
     There  are  numerous  commands  in nn, and most of them can be invoked by a
     single keystroke.	The descriptions in this manual are based on  the  stan-
     dard  bindings of the commands to the keys, but it is possible to customize
     these using the map command described later.  For	each  of  the  keystroke
     commands described in this manual, the corresponding command name will also
     be shown in curly braces, e.g. {command}.

     The  following  commands  work  in both selection mode and in reading mode.
     The notation ^X means `control X':

     ?	  {help}
	    Help.  Gives a one page overview of the commands  available  in  the
	    current mode.

     ^L   {redraw}
	    Redraw screen.

     ^R   {redraw}
	    Redraw screen (Same as ^L).

     ^P   {message}
	    Repeat  the last message shown on the message line.  The command can
	    be repeated to successively show previous messages (the maximum num-
	    ber of saved messages is controlled via  the  message-history  vari-
	    able.)

     !	  {shell}
	    Shell  escape.  The user is prompted for a command which is executed
	    by your favorite shell (see the shell variable).  Shell escapes  are
	    described in detail later on.

     Q	  {quit}
	    Quit  nn.	When you use this command, you neither lose unread arti-
	    cles in the current group nor the selections  you  might  have  made
	    (unless the articles are expired in the meantime of course).

     V	  {version}
	    Print release and version information.

     :command  {command}
	    Execute the command by name.  This form can be used to invoke any of
	    nn's  commands,  also  those which cannot be bound to a key (such as
	    :coredump), or those which are not bound to a key by  default  (such
	    as post and unshar).

     Related  and basic variables: backup, backup-suffix, confirm-auto-quit, ex-
     pert, mail, message-history, new-group-action, newsrc, quick-count.

SELECTION MODE
     In selection mode, the screen is divided into four parts: the  header  line
     showing  the  name  of  the news group and the number of articles, the menu
     lines which show the collected articles - one article per line, the  prompt
     line where you enter commands, and the message line where nn prints various
     messages to you.

     Each menu line begins with an article id which is a unique letter (or digit
     if  your  screen  can show more than 26 menu lines).  To select an articles
     for reading, you simply enter the corresponding id, and the menu line  will
     be  high-lighted  to  indicate that the article is selected.  When you have
     selected all the interesting articles on the present menu, you  simply  hit
     space.

     If  there	are  more articles collected for the current group than could be
     presented on one screenful of text, you will be  presented  with  the  next
     portion  of  articles to select from.  When you have had the opportunity to
     select among all the articles in the group, hitting space will enter  read-
     ing mode.

     If  no articles have been selected in the current group, hitting space will
     enter selection mode on the next news group, or  exit  nn	if  the  current
     group  was the last news group with unread articles. It is thus possible to
     go through ALL unread articles (without reading any of them) just	by  hit-
     ting space a few times.

     The  articles will be presented on the menu using one of the following lay-
     outs:

     0:     x Name.........  Subject.............. +123

     1:     x Name.........   123  Subject..............

     2:     x 123  Subject...................................

     3:     x Subject...........................................

     4:     x	 Subject........................................

     Here x is the letter or digit that must be entered to select  the	article,
     Name  is  the real name of the sender (or the mail address if the real name
     cannot be found), Subject is the contents of the "Subject:" line in the ar-
     ticle, and 123 is the number of lines in the article.

     Layout 0 and 1 are just two ways to present  the  same  information,  while
     layout  2	and 3 are intended for groups whose articles have very long sub-
     ject lines, e.g. comp.sources.

     Layout 4 is a hybrid between layout 1 and 3.  It will normally  use  layout
     1,  but  it  will	use  layout 3 (with a little indentation) for menu lines
     where the subject is longer than the space available with layout 1.

     Layout 1 is the default layout, and an alternative menu line layout is  se-
     lected  using  the -L option or by setting the layout variable.  Once nn is
     started the layout can be changed at any time using the " key {layout}.

     The Name is limited to 16 characters, and	to  make  maximum  use	of  this
     space, nn will perform a series of simplifications on the name, e.g. chang-
     ing  first  names	into initials, removing domain names from mail addresses
     (if the real name is not found) etc.  It does a good job, but  some  people
     on  the  net  put weird things into the From: field (or actually into their
     password file) which result in nn producing quite	cryptic,  and  sometimes
     funny "names".

     One  a usual 80 column terminal, the Subject is limited to about 60 charac-
     ters (75 in layout 3) and is thus only an approximation to the actual  sub-
     ject  line which may be much longer.  To get as much out of this space, Re:
     prefixes (in various forms) are recognized and replaced  by  a  single  `>'
     character (see the re-layout variable).

     Since  articles  are  sorted according to the subject, two or more adjacent
     articles may share the same subject (ignoring any	`>'s).	 In  this  case,
     only  the first article will show the subject of the article; the rest will
     only show the `>' character in the subject field (or a `-' if there  is  no
     `>' at the beginning of the line).  A typical menu will thus only show each
     subject once, saving a lot of time in scanning the news articles.

     If  consolidated  menus  (see section below) are enabled, adjacent articles
     sharing the same subject will be shown with a single line on the menu  cor-
     responding  to  the first of the articles.  The number of articles with the
     same subject will be shown as a braketed number in front  of  the	subject,
     e.g. with layout 1:
	  x Name.........   123  [4] Subject..............
     For further information see the section on consolidated menus below.

     Related variables: collapse-subject, columns, confirm-entry, confirm-entry-
     limit,  entry-report-limit,  fsort,  kill, layout, limit, lines, long-menu,
     re-layout, repeat, slow-mode, sort, sort-mode, split,  subject-match-limit,
     subject-match-offset, subject-match-parts, subject-match-minimum.

ARTICLE ATTRIBUTES
     While  nn	is  running  and between invocations, nn associates an attribute
     with each article on your system.	These attributes are used to differenti-
     ate between read and unread articles, selected  articles,	articles  marked
     for later treatment, etc.	Depending on how nn is configured, these attrib-
     utes  can	be  saved between invocations of nn, or some of them may only be
     used while nn is running.

     The attribute is shown on the menu using either a single character  follow-
     ing  the article id or by high-lighting the menu line, depending on the at-
     tribute and the capabilities of the terminal.  You can also change the  at-
     tributes to your own taste (see the attributes variable).

     The  attribute  of an article can be changed explicitly using the selection
     mode commands described below, or it will change automatically for  example
     when  you	have  read or saved a selected article.  If a command may change
     any article attributes, it will be noted in the description of the command.
     The following descriptions of the attributes will only mention the most im-
     portant commands that may set (or preserve) the attribute.

     The following attributes may be associated with an article:

     read   Menu attribute "." - indicates that the article  has  been	read  or
	    saved.  When you leave the group, these articles will be marked per-
	    manently  read,  and  are  not presented the next time you enter the
	    group.

     seen   Menu attribute "," - indicates that the article is unread, but  that
	    it has been presented on a menu.  Depending on how nn is configured,
	    these  articles will automatically be marked read when you leave the
	    group, they may remain seen, or they may just  be  unread  the  next
	    time you enter the group (see the auto-junk-seen, confirm-junk-seen,
	    and retain-seen-status variables).
	    Only  the  commands continue (space) and read-skip (X) will mark un-
	    read articles on the current (or all) menu pages as seen  when  they
	    are  used.	Other commands that scroll through the menu pages or en-
	    ter reading mode will let unread articles remain unread.

     unread
	    Menu attribute " " - indicates an unread  article.	 These	articles
	    were  unread  when you entered the group, and they may remain unread
	    when you leave the group, unless they have been marked seen  by  the
	    command that you used to leave the group or enter reading mode.

     selected
	    Menu  line high-lighted (or menu attribute "*") - indicates that you
	    have selected the article.	If you leave the group, the selected ar-
	    ticles will remain selected the next time you enter the group.  When
	    you have read a selected article, the attribute  will  automatically
	    change to read.

     auto-selected
	    These  articles have the same appearance as selected articles on the
	    menu, and the only difference is that these articles have  been  se-
	    lected  automatically  via	the  auto-selection facility rather than
	    manually by you.  Very few commands differentiate between these  at-
	    tributes  and  if  they  do, it is explicitly stated in this manual.
	    The main difference is that these articles are only marked as unread
	    when you leave the group (supposing they will also be  auto-selected
	    the  next  the group is entered).  This simplifies the house-keeping
	    between invocations of nn.

     leave  Menu attribute "+" - indicates that the article is marked for  later
	    treatment  by  the leave-article (l) command.  These articles may be
	    selected (on demand) when you have read all selected articles  in  a
	    group.   However,  if  you do not select them then immediately, they
	    are stored as the leave-next attribute described below.

     leave-next
	    Menu attribute "=" - indicates that the article is marked for  later
	    treatment  by  the	leave-next (L) command.  This is a permanent at-
	    tribute, which will remain on the article until you either read  the
	    article,  change the attribute, or it is expired.  So assinging this
	    attribute to an article will effectively keep it unread until you do
	    something.	If the variable select-leave-next is set,  nn  will  ask
	    whether  these  articles should be selected on entry to a group (but
	    naturally, doing so will change the leave-next attribute to select).

     cancelled
	    Menu attribute "#" - indicates that the article has been  cancelled.
	    This is mainly useful when tidying a folder; it is set by the cancel
	    (C)  command,  and can be cleared by any command that change attrib-
	    utes, e.g. you can select and deselect the article.

     killed
	    Menu attribute "!" - indicates that  the  article  has  been  killed
	    (e.g.  by the K {kill-select} command).  Killed articles are immedi-
	    ately removed from the menu, so you should not normally see articles
	    with this attribute.  If you do, report it as a bug!

     The  attributes are saved in two files: .newsrc (read articles) and .nn/se-
     lect (other attributes).  Plain unread articles are saved by not  occurring
     in  either  of  these files.  Both files are described in more detail later
     on.

     Related variables: attributes, auto-junk-seen,  confirm-junk-seen,  retain-
     seen-status, select-leave-next.

SELECTION MODE COMMANDS
     The  primary purpose of the selection mode is of course to select the arti-
     cles to be read, but numerous other commands may also be performed in  this
     mode:  saving  of articles in files, replying and following up on articles,
     mailing/forwarding articles, shell escapes etc.

     As described above, the selected articles are marked either by showing  the
     corresponding  menu line in standout mode (reverse video), or if the termi-
     nal does not have this capability by placing an asterisk (*) after the  se-
     lection letter or digit.

     Most  commands  which  are used to select articles will work as toggle com-
     mands.  If the article is not already selected,  the  selectedattribute  on
     the  article(s), independent on the previous attribute.  Otherwise, the ar-
     ticle(s) will be deselected and marked unread.  Consequently,  any  article
     can be marked unread simply be selecting and deselecting it.

     During selection, the cursor will normally be placed on the article follow-
     ing the last article whose attribute was changed (initially the first arti-
     cle).  The article pointed out by the cursor is called the current article,
     and  the following commands work relative to the current article and cursor
     position.

     abc...z 01..9  {article N}
	    The article with the given identification letter  or  digit  is  se-
	    lected or deselected.  The following article becomes the current ar-
	    ticle.   If  the  variable	auto-select-subject is set, all articles
	    with the same subject as the given article are selected.

     .	  {select}
	    Select or deselect the current article and move the  cursor  to  the
	    next article.

     ,	  {line+1}
	    Move  the cursor to the next article.  You can use the down arrow as
	    well.

     /	  {line-1}
	    Move cursor to previous article.  You can use the up arrow as well.

     *	  {select-subject}
	    Select or deselect all articles with same subject as  current  arti-
	    cle.  This will work across several menu pages if necessary.

     -x   {select-range}
	    Select or deselect the range of articles between the current article
	    and  the article specified by x.  For example you can select all ar-
	    ticles from e to k by simply typing e-k.

     The following commands may change the attributes on  all  articles  on  the
     current menu page, or on all articles on all menu pages.

     @	  {select-invert}
	    Reverse  selections.   All selected articles on the current page are
	    deselected, and vice-versa.  (Use the find command to select all ar-
	    ticles.)

     ~	  {unselect-all}
	    Deselect all auto-selected articles in the group (this works  across
	    all menu pages).  If the command is executed twice, the selected ar-
	    ticles will also be deselected.

     +	  {select-auto}
	    Perform  auto-selections  in  the  group  (see  the section on "auto
	    kill/select" below).

     =	  {find}
	    Prompts for a regular expression, and selects all  articles  on  the
	    menu (all pages) which matches the regular expression.  Depending on
	    the variable select-on-sender matching is performed against the sub-
	    ject  (default)  or  the sender of the articles.  An empty answer (=
	    return) will reuse the previous expression.  Example:  The command =
	    . return will select all articles in the group.

     J	  {junk-articles}
	    This is a very versatile command which can be used	to  perform  all
	    sorts of attribute changes, either on individual articles, all arti-
	    cles  on  the  current  menu  page, all articles with a specific at-
	    tribute, or all available articles.  To access all the functions  of
	    this command, the J key may have to be hit up to four times, to loop
	    through  different	one-line  menus.   The full functionality of the
	    junk-articles command is described in a separate section below.

     L	  {leave-next}
	    This is a specialized version of the generic J {junk-articles}  com-
	    mand  to set the leave-next attribute on a subset of the articles on
	    the menu.  It is also described further below.

     The following commands move between the pages belonging to  the  same  news
     group  when  there are more articles than will fit on a single page.  These
     commands will not change any article attributes.

     >	  {page+1}
	    Goto next menu page.

     <	  {page-1}
	    Goto previous menu page, or to last menu page if on first menu page.

     $	  {page=$}
	    Goto last menu page.

     ^	  {page=1}
	    Goto first menu page.

     The following commands are used to enter reading mode for the selected  ar-
     ticles,  and  to  move  between  news groups (in selection mode).	They may
     change article attributes if noted below.

     space     {continue}
	    Continue to next menu page, or if on last menu page,  read	the  se-
	    lected articles.  If no articles have been selected, continue to the
	    next  news group.  The unread articles on the current menu page will
	    automatically be marked seen.

     return    {continue-no-mark}
	    Identical to the continue command, except that the	unread	articles
	    on	the  current menu page will remain unread.  (The newline key has
	    the same effect).

     Z	  {read-return}
	    Enter reading mode immediately with the currently selected articles.
	    When all articles have been read, return to selection  mode  in  the
	    current  group.   It  will	mark  selected articles read as they are
	    read, but unread articles are not  normally  changed  (can	be  con-
	    trolled with the variable marked-by-read-return.)

     X	  {read-skip}
	    Mark  all unmarked articles seen on all menu pages (or the pages de-
	    fined by the marked-by-read-skip variable), and enter  reading  mode
	    immediately  with  the currently selected articles.  As the selected
	    articles are read, they are marked read.  When all selected articles
	    have been read, nn will enter selection mode in the next news group.
	    When no articles are selected, it goes directly to the  next  group.
	    This  can  be  used  to  skip all the articles in a large news group
	    without having to go through all the menu pages.

     If you don't want to read the current group now, but want to  keep  it  for
     later,  you  can  use  the following commands which will only mark seen and
     read articles as read.  Currently selected articles will still be	selected
     the  next time you enter the group.  None of these commands will change any
     attributes themselves (by default).

     N	  {next-group}
	    Go forward to the next group in the presentation sequence.	 If  the
	    variable  marked-by-next-group  is	set articles on the menu can op-
	    tionally be marked seen

     P	  {previous}
	    Go back to the previous group.  This command  will	enter  selection
	    mode on the last active group (two P commands in sequence will bring
	    you  to the current group).  If there are still some unread articles
	    in the group, only those articles will be shown.  Otherwise, all the
	    articles which were unread when nn was invoked will be shown  marked
	    with the read attribute (which can be changed as usual).

     As  described  in the "Article Attributes" section, the read and seen arti-
     cles will normally be marked read when you leave the group, and these arti-
     cles are not shown the next time you enter the group.

     In all releases prior to release 6.4, it was impossible to have  individual
     articles  in  a  group marked unread when you left a group, and the default
     behaviour of release 6.4 onwards will closely match the traditional  behav-
     iour.   This  means  that	the seen and read articles are treated alike for
     most practical purposes with the default variable settings.

     If you don't like nn to silently mark the seen articles read, you	can  set
     the variable confirm-junk-seen to get nn to prompt you for confirmation be-
     fore  doing  this,  or  you can unset the variable auto-junk-seen to simply
     keep the seen articles for the next time you enter  the  group.   You  then
     have to use the J {junk-articles} to mark articles read.

     Using return {continue-no-mark} will also allow you to keep articles unread
     rather than marking them seen when scrolling through the menu pages and en-
     tering  reading  mode.   If  this	is your preferred reading style, you can
     remap space to this command.

     Related variables: auto-junk-seen, auto-preview-mode,  auto-select-subject,
     case-fold-search,	 confirm-auto-quit,   confirm-entry,  confirm-junk-seen,
     marked-by-next-group, marked-by-read-return,  marked-by-read-skip,  retain-
     seen-status, select-on-sender.

CONSOLIDATED MENUS
     Normally,	nn will use one menu line for each article, so if there are many
     articles with identical subjects, each menu page will only  contain  a  few
     different	subjects.   To have each subject occur only once on the menu, nn
     can operate with consolidated menus by setting the  variable  consolidated-
     menu.

     When  consolidated  menus are used, nn operates with two kinds of subjects:
     open and closed.

     An open subject is a subject which is shown in the traditional way with one
     menu line for each article with the given subject.  In  other  words,  when
     consolidated menus are not used, all subjects are open (by default).

     A	closed subject is a multi-article subject which is presented by a single
     menu line.  This line will be the normal menu line for the  first	(oldest)
     article  with  the  subject,  but	with  the subject field annotated with a
     bracketed number showing the number of articles with that subject, e.g.
	  a Kim F. Storm     12  [4] Future plans for nn
	  b.Kim F. Storm     43  [3] More plans for nn
     In this example, there are four unread articles with subject `a'  of  which
     the  first  is posted by me and has 12 lines.  The rest of the articles are
     hidden, and will only be shown on request.  The `.'  marker on subject  `b'
     shows that all three articles within that subject have been read (or seen).

     To  select  (or  deselect) ALL the articles within a closed subject, simply
     select the article shown on the menu; this will  automatically  select  (or
     deselect)	the rest (see auto-select-closed).  When all the unread articles
     within a closed subject are selected, the menu line will be high-lighted.

     If you want to view the individual articles in a subject (maybe  to  select
     individual articles), you can open the subject with the commands:

     (x     Open subject x on menu.

     ((     Open current subject.

     When  you have completed viewing the opened subject, you can close it again
     using the commands:

     )x     Close subject x on menu (x is any article with the subject).

     ))     Close current subject.

     In the basic layout of the menu line for a closed subject as  shown  above,
     ALL articles in the closed subject are supposed to be either:

     unread
	    The menu line is not high-lighted.

     selected
	    Menu line is fully high-lighted (if all UNREAD are selected).

     read/seen
	    There is a `.' (read attribute) following the article id.

     If  neither  of  these  cases apply, i.e. there is a mixture of unread, se-
     lected, and seen/read articles, the bracketed number will have one  of  the
     following formats:

     [U:T]  There are U unread articles of T total (U<T).

     [S/T]  There are S selected articles of T total (S<U=T).

     [S/U:T]
	    There are S selected of U unread of T total (S<U<T).

     If  there	are  any  selected  articles  (S>0), the information between the
     brackets will be high-lighted (to show that something is selected, but  not
     all the unread articles).

     Notice:   Consolidated  menus  only  work	with the `subject' and `lexical'
     sorting methods.

     Variables related to consolidated menus are:  auto-select-closed,	consoli-
     dated-menu, counter-delim-left, counter-delim-right, counter-padding, save-
     closed-mode.

THE JUNK-ARTICLES AND LEAVE-NEXT COMMANDS
     The  J {junk-articles} command is a very flexible command which can perform
     all sorts of attribute changes, either on individual articles, all articles
     on the current menu page, all articles with a specific  attribute,  or  all
     available articles.

     To  access  all the functions of this command, the J key may have to be hit
     up to four times, to loop through different one-line menus:

     Mark Read
	    This submenu allows you to mark articles read.

     Unmark
	    This submenu allows you to mark articles unread.

     Select
	    This submenu allows you to select articles based on their attribute.

     Kill   This submenu allows you to mark articles read and remove  them  from
	    the menu based on their attribute.

     The  L  {leave-next}  command is an extension of the J command with a fifth
     menu:

     Leave  This menu allows you to mark articles for later  handling  with  the
	    leave-next	attribute  which  will keep the article unread until you
	    explicitly change the attribute (e.g. by reading it) or  it  is  ex-
	    pired.

     For each of these submenus, nn will list the most plausible choices you may
     use,  but	all  of the following answers can be used at all submenus.  When
     you have entered a choice, nn will afterward ask whether the change  should
     be made to all menu pages or only the current page.

     J	    Show next submenu.

     L	    Change attribute on all leave articles.

     N	    Change attribute on all leave-next articles.

     R	    Change attribute on all read articles.

     S	    Change attribute on all seen articles.

     U	    Change attribute on all unmarked (i.e. unread) articles.

     A	    Change attribute on all articles no matter their current attribute.

     *	    Change attribute on all selected articles on the current page.

     +	    Change attribute on all selected articles on all pages.

     a-z0-9
	    Change  attribute  on  one	or more specific articles on the current
	    page.  You end the list of articles by a space or by  using  one  of
	    the other choices described above.

     .	    Change attribute on current article.

     , /    Move  the  current	article down or up the menu without changing any
	    attributes.

READING MODE COMMANDS
     In reading mode, the selected articles are presented one page  at	a  time.
     To  get  the next page of an article, simply hit space, and when you are on
     the last page of an article, hit space to get to the next selected article.
     Articles are normally marked read when you go to the  next  article,  while
     going  back to the menu, quitting nn, etc. will retain the attribute on the
     current article.

     When you are on the last page of the last article, hit space to  enter  se-
     lection  mode  on	the next group (or the current group if reading mode was
     entered using the Z command).

     To read an article, the following text scrolling commands are available:

     space     {continue}
	    Scroll one page forward or continue with the next article  or  group
	    as described above.

     backspace / delete  {page-1}
	    Go one page backwards in article.

     d	  {page+1/2}
	    Scroll one half page forward.

     u	  {page-1/2}
	    Go one half page backwards.

     return    {line+1}
	    Scroll one line forward in the article.

     tab  {skip-lines}
	    Skip over lines starting with the same character as the last line on
	    the  current  page.  This is useful to skip over included text or to
	    the next file in a shell archive.

     ^	  {page=1}
	    Move to the first page (excluding the header) of the article.

     $	  {page=$}
	    Move to the last page of the article.

     gN   {line=@}
	    Move to line N in the article.

     /regexp   {find}
	    Search forward for text matching the regular  expression  regexp  in
	    the article.  If a matching text is found, it will be high-lighted.

     .	  {find-next}
	    Repeat search for last regular expression.

     h	  {page=0}
	    Show the header of the article, and continue from the top of the ar-
	    ticle.

     H	  {full-digest}
	    If	the  current article is extracted from a digest, show the entire
	    digest article including its header.  Another H command will  return
	    to the current subarticle.

     D	  {rot13}
	    Turn  rot13  (caesar) decryption on and off for the current article,
	    and redraw current page.  If the article is saved while  it  is  de-
	    crypted on the screen, it will be saved in decrypted form as well!

     c	  {compress}
	    Turn  compression on and off for the current article and redraw cur-
	    rent page.	With compression turned on, multiple spaces and tabs are
	    shown as a single space.  This makes it much easier  to  read  right
	    justified  text which separate words with several spaces.  (See also
	    the compress variable)

     The following commands are used to move among the selected articles.

     n	  {next-article}
	    Move to next selected article.  This command skips the rest  of  the
	    current article, marks it read, and jumps directly to the first page
	    of	the  next  selected  article (or to the next group if it was the
	    last selected article).

     l	  {leave-article}
	    Mark the current article with the leave attribute and continue  with
	    the  next  selected  article.  When all the selected articles in the
	    current group have been read, these left over articles can be  auto-
	    matically  selected  and  shown  once  more, or the treatment can be
	    postponed to the next time you enter the group.
	      This is particularly useful if you see an article  which	you  may
	    want to respond to unless one the following articles is already say-
	    ing what you intended to say.

     L	  {leave-next}
	    Mark  the current article with the leave-next attribute and continue
	    with the next selected article.

     p	  {previous}
	    Goto previous article.

     k	  {next-subject}
	    Kill subject.  Skips rest of current article, and all following  ar-
	    ticles with the same subject.  The skipped articles are marked read.
	    To kill a subject permanently use the K command.

     *	  {select-subject}
	    Show  next	article  with same subject (even if it is not selected).
	    This command will select all following articles with the  same  sub-
	    ject as the current article (similar to the `*' command in selection
	    mode).   This can be used to select only the first article on a sub-
	    ject in selection mode, and then select all  follow-ups  in  reading
	    mode if you find the article interesting.

     a	  {advance-article}
	    Goto  the  following article on the menu even if it is not selected.
	    This command skips the rest of the current	article  and  jumps  di-
	    rectly  to	the  first page of the next article (it will not skip to
	    the next group if it is the last article).	 The  attribute  on  the
	    current  article  will  be restored, except for the unread attribute
	    which will be changed to seen.

     b	  {back-article}
	    Goto the article before current article on the menu even  if  it  is
	    not  selected.  This is similar to the a command, except for the di-
	    rection.

     The following commands perform an immediate return from reading mode to se-
     lection mode in the current group or skip to the next group.

     =	  {goto-menu}
	    Return to selection mode in the current group (think  of  =  as  the
	    "icon"  of	the  selection	menu).	The articles read so far will be
	    marked read.

     N	  {next-group}
	    Skip the rest of the selected and unread  articles	in  the  current
	    group  and	go directly to the next group.	Only the read (and seen)
	    articles in the current group are marked as read.

     X	  {read-skip}
	    Mark all articles in the current group as read and	go  directly  to
	    the next group.  (You will be asked to confirm this command.)

     Related  variables:  case-fold-search,  charset, compress, data-bits, date,
     header-lines,  mark-overlap,  monitor,  overlap,  scroll-clear-page,  stop,
     trusted-escape-codes, wrap-header-margin.

PREVIEWING ARTICLES IN SELECTION MODE
     In  selection  mode,  it is possible to read a specific article on the menu
     without entering reading mode for all the selected articles  on  the  menu.
     Using  the commands described below will enter reading mode for one article
     only, and then return to the menu mode immediately after (depending on  the
     setting of the preview-continuation variable).

     If  there	are  more than 5 free lines at the bottom of the menu screen, nn
     will use that space to show the article (a minimal preview  window  can  be
     permanently  allocated  with  the	window variable).  Otherwise, the screen
     will be cleared to show the article.

     After previewing an article, it will be marked read (if  the  preview-mark-
     read  variable  is  set), and the following article will become the current
     article.

     %x   {preview}
	    Preview article x.

     %%   {preview}
	    Preview the current article.

     When the article is being shown, the following reading  mode  commands  are
     very useful:

     =	  {goto-menu}
	    Skip the rest of the current article, and return to menu mode.

     n	  {next-article}
	    Skip the rest of the current article, and preview the next article.

     l	  {leave-article}
	    Mark  the article as selected (!) on the menu for handling later on.
	    Then skip the rest of the current article, and preview the next  ar-
	    ticle.

     %y   {preview}
	    Preview article y .

     If  the  variable	auto-preview-mode is set, just hitting the article id in
     menu mode will enter preview mode on the specified article.

     Related  variables:  auto-preview-mode,  min-window,  preview-continuation,
     preview-mark-read, window.

SAVING ARTICLES
     The following commands are used to save articles in files, unpack archives,
     decode  binaries,	etc.  It is possible to use the commands in both reading
     mode to save the current article and in selection mode to save one or  more
     articles on the menu.

     The saved articles will be appended to the specified file(s) followed by an
     empty  line  each.   Both	files and directories will be created as needed.
     When an article has been saved in a file, a message reporting the number of
     lines saved will be shown if the save-report variable is set (default on).

     S	  {save-full}
	    Save articles including the full article header.

     O	  {save-short}
	    Save articles with a short header containing only the  name  of  the
	    sender, the subject, and the posting date of the article.

     E	  {save-header}
	    Save only the header of the articles.

     W	  {save-body}
	    Write article without a header.

     :print    {print}
	    Print article.  Instead of a file name, this command will prompt for
	    the  print	command to which the current article will be piped.  The
	    default print command is specified at compile time, but  it  can  be
	    changed by setting the printer variable.  The output will be identi-
	    cal to that of the O command.

     :patch    {patch}
	    Send articles through patch(1) (or the program defined in the patch-
	    command variable).	Instead of a file name, you will be prompted for
	    the  name  of  a directory in which you want the patch command to be
	    executed.  nn will then pipe the body of  the  article  through  the
	    patch command.
	      The  output from the patch process will be shown on the screen and
	    also appended to a file named Patch.Result in the patch directory.

     :unshar   {unshar}
	    Unshar articles.  You will be prompted for the name of  a  directory
	    in	which you want nn to unshar the articles.  nn will then pipe the
	    proper parts of the article body into a Bourne Shell  whose  working
	    directory will be set to the specified directory.
	      During  the  unpacking,  the normal output from the unshar process
	    will appear on the screen, and the menu or article text will be  re-
	    drawn when the process is finished.
	      The  output  is also appended to a file named Unshar.Result in the
	    unshar directory.
	      The file specified in  unshar-header-file  (default  "Unshar.Head-
	    ers")  in  the  unshar directory will contain the header and initial
	    text (before the shar data) from the article.  You can use	the  `G'
	    {goto-group} command to look at the Unshar.Headers file.

     :decode   {decode}
	    Decode  uuencoded  articles into binary files.  You will be prompted
	    for the name of a directory in which you want nn to  place	the  de-
	    coded  binary  files  (the	file  names are taken from the uuencoded
	    data).
	      nn will combine several articles into single files as needed,  and
	    you  can  even  decode  unrelated packages (into the same directory)
	    with one decode command.
	      To be able to decode a binary file which spans  several  articles,
	    nn	may  have to ignore lines which fail the normal sanity checks on
	    uuencoded data instead of  treating  them  as  transmission  errors.
	    Consequently,  it is strongly recommended to check the resulting de-
	    coded file using the checksum which is  normally  contained  in  the
	    original article.  (Actually, you are also supposed to do this after
	    decoding with a stand-alone uudecode program).
	      The  header  and	initial  information in the decoded articles are
	    saved in the file  specified  in  decode-header-file  (default  "De-
	    code.Headers") in the same directory as the decoded files.
	      If  decode-skip-prefix is non-null, :decode will attempt to ignore
	    up to that many characters on each line to find  the  encoded  data.
	    This  is particularly useful in some binaries groups where files are
	    both uuencoded and packed with shar; nn will ignore the prefix added
	    to each line by shar, and thus be able to unshar,  concatenate,  and
	    decode multi-part postings automatically.

     In  reading  mode,  the  following keys can also be used to invoke the save
     commands:

     s	    Same as S.

     o	    Same as O.

     w	    Same as W.

     P	    Same as :print.

     The save commands will prompt for a file name which is  expanded  according
     to  the  rules  described in the section on file name expansion below.  For
     each group, it is possible to specify a default save file in the init file,
     either in connection with the group presentation sequence or in a	separate
     save-files  section  (see	below).  If a default save file is specified for
     the group, nn will show this on the prompt line when  it  prompts	for  the
     file  name.   You	can  edit this name as usual, but if you kill the entire
     name immediately, nn will replace the default name with the last file  name
     you  entered.   If  you  kill  this as well, nn will leave you with a blank
     line.

     If the quick-save variable is set, nn will only prompt for a save file name
     when the current article is inside a folder; otherwise,  the  default  save
     file defined in the init file will be used unconditionally.

     If  the  file  (and  directories  in  the path) does not exist, nn will ask
     whether the file (and the directories) should be created.

     If the file name contains an asterisk, e.g.
	  part*.shar
     nn will save each of the articles in uniquely named  files  constructed  by
     replacing the asterisk by numbers from the sequence 1, 2, 3, etc.	The for-
     mat  of the string that replaces the * can be changed with the save-counter
     variable, and the first number to use can be changed via  save-counter-off-
     set.

     In selection mode, nn will prompt you for the identifier of one or more ar-
     ticles  you  want to save.  When you don't want to save more articles, just
     hit space.  The saved articles will be marked read.

     If you enter an asterisk `*' when you are prompted for an article to  save,
     nn  will  automatically  save all the selected articles on the current menu
     page and mark them read.

     Likewise, if you enter a plus `+', nn will save all the  selected	articles
     on all menu pages and mark them read.

     This  is very useful to unpack an entire package using the :unshar and :de-
     code commands.  It can also be used in combination with the  save	selected
     articles  feature to save a selection of articles in separate, successively
     numbered files.  But do not confuse these two concepts!  The S* and S+ com-
     mands can be used to save the selected articles in a single file as well as
     in separate files, and the save in separate files feature can be used  also
     when  saving  individual  articles, either in the selection mode, or in the
     article reading mode.

     When articles are saved in a file with a full or partial header, any header
     lines in the body of the article will be escaped by a  tilde  (e.g.  ~From:
     ...)  to  enable nn to split the folder into separate articles.  The escape
     string can be redefined via the embedded-header-escape variable.

     Articles can optionally be saved in MAIL or MMDF compatible format by  set-
     ting the mail-format and mmdf-format variables.  These variables only spec-
     ify  the  format used when creating a new folder, while appending to an ex-
     isting folder will be done in the format of the folder (unless  folder-for-
     mat-check is false).

     Related  variables: confirm-append, confirm-create, decode-header-file, de-
     code-skip-prefix, default-save-file, folder-save-file,  edit-patch-command,
     edit-print-command, edit-unshar-command, folder, folder-format-check, mail-
     format,  mmdf-format,  patch-command,  printer,  quick-save,  save-counter,
     save-counter-offset, save-report, suggest-default-save, unshar-command, un-
     shar-header-file.

FOLDER MAINTENANCE
     When more than one article is saved in a folder, nn is able  to  split  the
     folder, and each article in the folder can be treated like a separate arti-
     cle.

     This  means  that you can save, decode, reply, follow-up, etc. just as with
     the original article.

     You can also cancel (delete) individual articles in a folder using the nor-
     mal C {cancel} command described later.  When you quit from the folder, you
     will then be given the option to remove the  cancelled  articles  from  the
     folder.

     The original folder is saved in a file named `BackupFolder~' in the .nn di-
     rectory  (see  the  backup-folder-path variable) by renaming or copying the
     old folder as appropriate.  When the folder has been compressed, the backup
     folder will be removed unless the variable keep-backup-folder is set.

     If all articles in a folder are cancelled, the folder will  be  removed  or
     truncated to zero length (whatever is allowed by directory and file permis-
     sions).   In  this case no backup folder is retained even when keep-backup-
     folder is set!

     If the variable trace-folder-packing is set, nn will  show  which	articles
     are kept and which are removed as the folder is rewritten.

     Folders  are rewritten in the format of the original folder, i.e. the mail-
     format and mmdf-format variables are ignored.

     Related variables:  backup-folder-path,  keep-backup-folder,  trace-folder-
     packing.

FILE NAME EXPANSION
     When the save commands prompts for a file name, the following file name ex-
     pansions are performed on the file name you enter:

     +folder
	    The  +  is	replaced by the contents of the folder variable (default
	    value "~/News/") resulting in the name of a file in the  folder  di-
	    rectory.  Examples:
		 +emacs, +nn, +sources/shar/nn

     +	    A  single  plus  is  replaced by the expansion of the file name con-
	    tained in the default-save-file  variable  (or  by	folder-save-file
	    when saving from a folder).

     ~/file
	    The  ~ is replaced by the contents of the environment variable HOME,
	    i.e. the path name of your home directory.	Examples:
		 ~/News/emacs, ~/News/nn, ~/src/shar/nn

     ~user/file
	    The ~user part is replaced by the user's home directory  as  defined
	    in the /etc/passwd file.

     |command-line
	    Instead  of  writing  to a file, the articles are piped to the given
	    shell (/bin/sh) command-line.  Each save or write command will  cre-
	    ate  a  separate pipe, but all articles saved or written in one com-
	    mand (in selection mode) are given as input to the same  shell  com-
	    mand.  Example:
		 | pr | lp
	    This  will	print  the  articles on the printer after they have been
	    piped through pr.
		It is possible to create separate pipes for each  saved  article
	    by using a double pipe symbol in the beginning of the command, e.g.
		 || cd ~/src/nn ; patch

     The following symbols are expanded in a file name or command:

     $F     will  be  expanded to the name of the current group with the periods
	    replaced by slashes, e.g. rec/music/synth.

     $G     will be expanded to the name of the current group.

     $L     will be expanded to the last component of the name	of  the  current
	    group.   You  may  use  this  to create default save file names like
	    +src/$L in the comp.sources groups.

     $N     will be expanded to the (local) article number, e.g. 1099.	 In  se-
	    lection mode it is only allowed at the end of the file name!

     $(VAR)
	    is replaced by the string value of the environment variable VAR.

     Using  these  symbols,  a simple naming scheme for `default folder name' is
     +$G which will use the group name as folder name.	Another  possibility  is
     +$F/$N.

     As  mentioned  above, you can also instruct nn to save a series of files in
     separate, unique files.  All that is required is that the	file  name  con-
     tains an asterisk, e.g.
	  +src/hype/part*.shar
     This  will cause each of the articles to be saved in separate, unique files
     named part1.shar, part2.shar, and so on, always choosing a part number that
     results in a unique file name (i.e. if part1.shar did  already  exist,  the
     first  article would be saved in part2.shar, the next in part3.shar, and so
     on).

     Related  variables:  default-save-file,  folder,  folder-save-file,   save-
     counter, save-counter-offset.

FILE AND GROUP NAME COMPLETION
     When entering a file name or a news group name, a simple completion feature
     is available using the space, tab, and ? keys.

     Hitting  space anywhere during input will complete the current component of
     the file name or group name with the first available possibility.

     If this possibility is not the one you want, keep on hitting space until it
     appears.

     When the right completion has appeared, you can just  continue  typing  the
     file  or  group  name, or you can hit tab to fix the current component, and
     get the first possibility for the next component, and then use space to  go
     through the other possible completions.

     The  ?   key will produce a list of the possible completions of the current
     component.  If the list is too long for the available space on screen,  the
     key can be repeated to get the next part of the list.

     The current completion can be deleted with the erase key.

     The  default  value for a file name is the last file name you have entered,
     so if you enter a space as the first character after the prompt,  the  last
     file  name  will  be  repeated  (and you can edit it if you like).  In some
     cases, a string will already be written for you in the prompt line, and  to
     get  the  default	value in these cases, use the kill key.  This also means
     that if you neither want the initial value, nor the default value, you will
     have to hit the kill twice to get a clean prompt line.

     Related variables: comp1-key, comp2-key, help-key, suggest-default-save.

POSTING AND RESPONDING TO ARTICLES
     In both selection mode and reading mode you can  post  new  articles,  post
     follow-ups  to  articles, send replies to the author of an article, and you
     can send mail to another user with the option of including  an  article  in
     the  letter.   In	reading mode, a response is made to the current article,
     while in selection mode you will be prompted for an article to respond to.

     The following commands are available (the lower-case equivalents  are  also
     available in reading mode):

     R	  {reply}
	    Reply  through  mail to the author of the article.	This is the pre-
	    ferred way to respond to an article unless you think your  reply  is
	    of general interest.

     F	  {follow}
	    Follow-up  with an article in the same newsgroup (unless an alterna-
	    tive group is specified in the article header).  The distribution of
	    the follow-up is normally the same as the original article, but this
	    can be modified via the follow-distribution variable.

     M	  {mail}
	    Mail a letter or forward an article to a single recipient.	 In  se-
	    lection mode, you will be prompted for an article to include in your
	    letter, and in reading mode you will be asked if the current article
	    should be included in the letter.  You will then be prompted for the
	    recipient of the letter (default recipient is yourself) and the sub-
	    ject  of the letter (if an article is included, you may hit space to
	    get the default subject which is the subject of the  included  arti-
	    cle).
	      The header of the article is only included in the posted letter if
	    it	is forwarded (i.e. not edited), or if the variable include-full-
	    header is set.

     :post     {post}
	    Post a new article to any newsgroup.  This command will  prompt  you
	    for  a comma-separated list of newsgroups to post to (you cannot en-
	    ter a space because space is used for group name completion  as  de-
	    scribed below).
	      If  you  enter  ?  {help-key} as the first key, nn will show you a
	    list of all available news groups and their purpose.   While  paging
	    through this list, you can enter q to quit looking at the list.  You
	    can  also enter / followed by a regular expression (typically a sin-
	    gle word) which will cause nn to show a (much shorter) list contain-
	    ing only the lines matching the regular expression.
	       Normally, you will be prompted for the distribution of the  arti-
	    cle with the default take from default-distribution, but this can be
	    changed via the post-distribution variable.

     Generally,  nn will construct a file with a suitable header, optionally in-
     clude a copy of the article in the file with each non-empty  line	prefixed
     by  a  `>'  character  (except  in mail mode), and invoke an editor of your
     choice (using the EDITOR environment variable) on	this  file,  positioning
     you on the first line of the body of the article (if it knows the editor).

     When  you	have  completed  editing  the message, it will compare it to the
     unedited file, and if they are identical (i.e. you did not make any changes
     to the file), or it is empty, the operation is  cancelled.   Otherwise  you
     will  be  prompted  for an action to take on the constructed article (enter
     first letter followed by return, or just return to  take  the  default  ac-
     tion):
	 a)bort c)c e)dit h)old i)spell m)ail p)ost r)eedit s)end v)iew w)rite 7)bit
	 Action: (post article)
     You now have the opportunity to perform one of the following actions:

       a    throw the response away (will ask for confirmation),
       c    mail a copy of a follow-up to the poster of the article,
       e    edit the file again,
       h    hold response for later completion,
       i    run an (interactive) spell-checker on the text,
       m    mail a (blind) copy to a specified recipient,
       n    same as abort (no don't post),
       p    post article (same as send),
       r    throw away the edited text and edit the original text,
       s    send the article or letter,
       v    view the article (through the pager),
       w    append it to a file (before you send it),
       y    confirm default answer (e.g. yes post it), or
       7    strip the high-order bit from all characters in the message

     If  you have selected a 7-bit character set (this is determined by the val-
     ues of the charset and data-bits variables), nn will not allow you to  post
     an  article  or send a letter whose body contains characters with the high-
     order bit set. It will warn you after you have first edited the message and
     disable the c)c, m)ail, p)ost, s)end and y)es actions. You can then  either
     e)dit  the message to delete those characters, use 7)bit to strip the high-
     order bits, a)bort the message, or h)old it and select an	8-bit  character
     set from nn.

     To complete an unfinished response saved by the h)old command, simply enter
     any  response  action, e.g. R {reply}.  This will notice the unfinished re-
     sponse and ask you whether you want to complete it now.   Only  one  unfin-
     ished  response  can exist at a time.  Notice that the $A environment vari-
     able may no longer be valid as a path to the original article when the  re-
     sponse is completed.

     If  your message contains 8-bit characters, the charset variable is not set
     to "unknown" and the message does not already have a MIME-Version	or  Con-
     tent-XXX  header,	nn will add the following headers to your message before
     sending it:
	  MIME-Version: 1.0
	  Content-Type: text/plain; charset=charset
	  Content-Transfer-Encoding: 8bit
     It must be noted that sending 8-bit characters over the  current  news  and
     mail  networks  is  risky at best; although large parts of the network will
     pass through such characters unchanged, high-order bits may occasionally be
     stripped. Although the MIME standard provides solutions for this by  encod-
     ing  the  characters,  this  is  not yet supported by nn.	Adding the above
     headers is an interim solution that is compatible with current practice and
     is much better than just sending the message without any  hints  about  the
     character set used.

     Related  variables:  append-signature-mail, append-signature-post, charset,
     data-bits,  default-distribution,	follow-distribution,  post-distribution,
     edit-response-check, editor, include-art-id, include-full-header, included-
     mark,  mail-header,  mail-record,	mail-script,  mailer, mailer-pipe-input,
     news-header, news-record, news-script, orig-to-include-mask, pager,  query-
     signature,  record,  response-check-pause,  response-default-answer,  save-
     counter, save-counter-offset, save-report, spell-checker.

JUMPING TO OTHER GROUPS
     By default nn will present the news groups in a  predefined  sequence  (see
     the  section on Presentation Sequence later on).  To override this sequence
     and have a look at any other group the G {goto-group} command available  in
     both  selection and reading mode enables you to move freely between all the
     newsgroups.

     Furthermore, the G command enables you to open folders and other files,  to
     read  old articles you have read before, and to grep for a specific subject
     in a group.

     It is important to notice that normally the goto command is recursive, i.e.
     a new menu level is created when the specified  group  or	folder	is  pre-
     sented,  and  when  it  has been read, nn will continue the activity in the
     group that was presented before the goto command was executed.  However, if
     there are unread articles in the target group you can avoid entering a  new
     menu  level  by  using the j reply described below.  The current menu level
     (i.e. number of nested goto commands) will be shown in the prompt	line  as
     "<N>" (in reverse video).

     The  goto	command  is  very  powerful, but unfortunately also a little bit
     tricky at first sight, because the facilities it  provides  depend  on  the
     context in which the command is used.

     When  executed,  the goto command will prompt you for the name of the news-
     group, folder, or file to open.  It will use the first letter you enter  to
     distinguish these three possibilities:

     return
	    An empty answer is equivalent to the current newsgroup.

     letter
	    The  answer is taken to be the name of a newsgroup.  If a news group
	    with the given name does not exist, nn will treat the  answer  as  a
	    regular  expression  and  locate the first group in the presentation
	    sequence (or among all groups) whose name matches the expression.

     +
	    The answer is taken to be the name of a folder.  If only `+' is  en-
	    tered,  it	is  equivalent	to the default save file for the current
	    group.

     / or ./ or ~/
	    The answer is taken to be the name of a file, either relative to the
	    current directory, relative to your home directory, or  an	absolute
	    path name for the file.

     %	    In reading mode, this reply corresponds to reading the current arti-
	    cle  (and  splitting  it  as  a digest).  In selection mode, it will
	    prompt for an article on the menu to read.

     @	    This choice is equivalent to the archive file for the current group.

     = and number
	    These answers are equivalent to the same answers described below ap-
	    plied to the current group (e.g. G return = and G = are equivalent).

     Specifying a folder, a file, or an article (with %) will cause nn to  treat
     the  file	like  a  digest  and split it into separate articles (not physi-
     cally!)  which are then presented on a menu in the usual way, allowing  you
     to read or save individual subarticles from the folder.

     When you enter a group name, nn will ask you how many articles in the group
     you want to see on the menu.  You can give the following answers:

     a number N
	    In	this case you will get the newest N articles in the group, or if
	    you specified the current group (by hitting return to the group name
	    prompt or entering the number directly), you will get that many  ex-
	    tra  articles included on the same menu (without creating a new menu
	    level).

     j	    This answer can only be given if there are unread  articles  in  the
	    group.   It will instruct nn to jump directly to the specified group
	    in the presentation sequence without creating a new menu level.

     u	    This instructs nn to present the unread articles in  the  group  (if
	    there  are any).  If you have already read the group (in the current
	    invocation of nn), the u answer will instruct nn to present the  ar-
	    ticles that were unread when you entered nn.

     a	    This instruct nn to present all articles in the group.

     sword or =word
	    This  instructs  nn  to  search all articles in the groups, but only
	    present the articles containing the word word in the  subject.   No-
	    tice that case is ignored when searching for the word in the subject
	    lines.

     nword  Same  as  the  s form except that it searched for articles where the
	    sender name matches word.

     eword  Same as the s form except that it Psearched for articles  where  ei-
	    ther the subject or the sender name matches word.

     word = /regexp
	    When  the first character of the word specified with the s, n, and e
	    forms is a slash `/', the rest of the input is interpreted as a reg-
	    ular expression to	search	for.   Notice  that  regular  expression
	    matching is case insensitive when case-fold-search is set (default).

     return
	    The  meaning of an empty answer depends on the context: if there are
	    unread articles in the specified group the unread articles	will  be
	    presented,	otherwise  all articles in the group will be included in
	    the menu.

     If you specified the current group, and the menu already contains	all  the
     available articles, nn will directly prompt for a word to search for in the
     subject of all articles (the prompt will be an equal sign.)

     When  the	goto  command creates a new menu level, nn will not perform auto
     kill or selection in the group.  You can use the + command in menu mode  to
     perform the auto-selections.

     There are three commands in the goto family:

     G	  {goto-group}
	    This is the general goto command described above.

     B	  {back-group}
	    Backup  one  or more groups.  You can hit this key one or more times
	    to go back in the groups already presented (including those  without
	    new  articles);  when  you have found the group you are looking for,
	    hit space to enter it.

     A	  {advance-group}
	    Advance one or more groups.  This command is similar to the  B  com-
	    mand, but operates in the opposite direction.

     N	  {next-group}
	    When  used	within	an  A or B command, it skips forward to the next
	    group in the sequence with unread articles or which  has  previously
	    been visited.

     P	  {previous}
	    When  used	within an A or B command, it skips backwards to the pre-
	    ceding group in the sequence with unread articles or which has  pre-
	    viously been visited.

     Once you have entered an A or Bcommand, you can freely mix the A, B, P, and
     N	commands  to find the group you want, and you can also use the G command
     to be prompted for a group name.

     To show the use of the goto command some typical examples on  its	use  are
     given below:

     Present the unread articles in the dk.general group
	   G dk.general return u

     Jump directly to the gnu.emacs group and continue from there
	   G gnu.emacs return j

     Include the last 10 READ articles in the current group menu
	   G 10 return

     Find all articles in rec.music.misc on the subject Floyd
	   G rec.music.misc return
	   = floyd return

     Open the folder +nn
	   G +nn return

     Split current article as a digest (in reading mode)
	   G %

     Related variables: case-fold-search, default-save-file, folder-save-file

AUTOMATIC KILL AND SELECTION
     When  there  is a subject or an author which you are either very interested
     in, or find completely uninteresting, you can easily instruct nn  to  auto-
     select  or  auto-kill  articles with specific subjects or from specific au-
     thors.  These instructions are stored in a kill file, and the  most  common
     types of entries can be created using the following command:

     K	  {kill-select}
	    Create an entry in your personal kill file.  The contents of the en-
	    try  is specified during a short dialog that is described in details
	    below.  This command is available  in  both  selection  and  reading
	    mode.

     Entries  in  the  kill file may apply to a single newsgroup or to all news-
     groups.  Furthermore, entries may be permanent or they  may  be  expired  a
     given number of days after their entry.

     To  increase performance, nn uses a compiled version of the kill file which
     is read in when nn is invoked.  The compiled kill file  will  automatically
     be updated if the normal kill file has been modified.

     The following dialog is used to build the kill file entry:

     AUTO (k)ill or (s)elect (CR => Kill subject 30 days)
	    If	you  simply want nn to kill all articles with the subject of the
	    current article (in reading mode) or a specific  article  (which  nn
	    will  prompt  for  in  selection  mode), just hit return.  This will
	    cause nn to create an entry in the kill file to kill the current (or
	    specified) subject in the current group for  a  period  of	30  days
	    (which should be enough for the discussion to die out).
	    You  can  control  the default kill period, or change it into a "se-
	    lect" period via the default-kill-select variable.
	    If this "default behaviour" is not what you want, just answer either
	    k or s to kill or select articles, respectively,  which  will  bring
	    you on to the rest of the questions.

     AUTO SELECT on (s)ubject or (n)ame  (s)
	    (The  SELECT will be substituted with KILL depending on the previous
	    answer).  Here you specify whether you want the kill  or  select  to
	    depend on the subject of the article (s or space), or on the name of
	    the author (n).

     SELECT NAME:
	    (Again  SELECT  may be substituted with KILL and SUBJECT may replace
	    NAME).  You must now enter a name (or subject) to select (or  kill).
	    In	reading mode, you may just hit return (or %) to use the name (or
	    subject) of the current article.  In selection mode, you can use the
	    name (or subject) from an article on the menu by  answering  with  %
	    followed by the corresponding article identifier.
	    When  the  name  or subject is taken from an article (the current or
	    one from the menu), nn will only select or kill articles  where  the
	    name or subject matches the original name or subject exactly includ-
	    ing case.
	    If	the first character typed at the prompt is a slash `/', the rest
	    of the line is used as a regular expression which is used  to  match
	    the name or subject (case insensitive).
	    Otherwise,	nn will select or kill articles which contain the speci-
	    fied string anywhere in the name or subject (ignoring case).

     SELECT in (g)roup `dk.general' or in (a)ll groups	(g)
	    You must now specify whether the selection or kill should  apply  to
	    the current group only (g or space) or to all groups (a).

     Lifetime of entry in days (p)ermanent  (30)
	    You  can now specify the lifetime of the entry, either by entering a
	    number specifying the number of days the entry should be active,  or
	    p  to  specify  the  entry	as a permanent entry.  An empty reply is
	    equivalent to 30 days.

     CONFIRM SELECT ....
	    Finally, you will be asked to confirm the entry, and you should  es-
	    pecially  note the presence or absence of the word exact which spec-
	    ify whether an exact match applies for the entry.

     Related variables: default-kill-select, kill.

THE FORMAT OF THE KILL FILE
     The kill file consists of one line for each entry.  Empty lines  and  lines
     starting with a # character are ignored.  nn automatically places a # char-
     acter  in	the  first position of expired entries when it compiles the kill
     file.  You can then edit the kill file manually from time to time to  clean
     out these entries.

     Each line has the following format
	  [expire time :] [group name] : flags : string [: string]...

     Permanent	entries  have no expire time (in which case the colon is omitted
     as well!).  Otherwise, the expire time defines the time (as a time_t value)
     when the entry should be expired.

     The group name field can have three forms:

     news.group.name
	    If it is the name of a single news group (e.g. comp.unix), the entry
	    applies to that group only.

     /regular expression
	    If it starts with a slash `/' followed by a regular expression (e.g.
	    /^news\..*), the entry applies to all groups whose name are  matched
	    by the regular expression.

     empty  An empty group field will apply the entry to all groups.

     The  flags field consists of a list of characters which identifies the type
     of entry, and the interpretation of each string field.  When used, the flag
     characters must be used in the order in which they are described below:

     ~	  (optional)
	    When this flag is present on any  of  the  entries	for  a	specific
	    group,  it	causes	all  entires  which  are not auto-selected to be
	    killed.  This is a simple way to say: I'm  interested  in  this  and
	    that, but nothing else.

     +	  or ! (optional)
	    Specify  an auto-select + or an auto-kill ! entry, respectively.  If
	    neither are used, the article is neither selected nor  killed  which
	    is useful in combination with the `~' flag.

     > (optional)
	    When  used with a subject (flag s), the kill entry only matches fol-
	    low-ups to that subject (i.e. where the Subject:  line  starts  with
	    Re:).  For example, to kill all "Re:"'s in rec.humor use the follow-
	    ing kill entry: rec.humor:!>s/:.

     < (optional)
	    When  used with a subject (flag s), the kill entry only matches base
	    articles with that subject (i.e. where the Subject:  line  does  not
	    start  with Re:).  For example, to kill all articles asking for help
	    (but not follow-ups) in the tex group, add this to your kill file:
		 comp.text.tex:!s</:^HELP

     n or s or a (mandatory)
	    Specify whether the corresponding string applies to the name n or to
	    the subject s of an article.  If flag a is used,  the  corresponding
	    string  is	ignored  (but must be present), and the entry applies to
	    articles with a non-empty References: line.

     / (optional)
	    Specifies that the corresponding  string  is  a  regular  expression
	    which the sender or subject is matched against.  If not specified, a
	    simple string match is performed using the given string.

     = (optional)
	    Specifies  that the match against the name or subject is case sensi-
	    tive.  Furthermore, when regular expression matching  is  not  used,
	    the  name  or  subject  must  be of the same length of the string to
	    match.  Otherwise, the match will be case insensitive, and a  string
	    may occur anywhere in the name or subject to match.

     | or & (mandatory if multiple strings)
	    If more than one string is specified, the set of flags corresponding
	    to	each string must be separated by either an or operator `|' or an
	    and operator `&'.  The and operator has a higher precedence than the
	    or operator, e.g.  a complex match expression a|b&c|d  will  succeed
	    if either of a, b&c, or d matches.

     The  string  field  in the entry is the name, subject or regular expression
     that will be matched against the name or subject of  each	article  in  the
     group (or all groups).  Colons and backslashes must be escaped with a back-
     slash in the string.

     Example  1:   Auto-select	articles  from	`Tom Collins' (exact) on subject
     `News' in all groups:
	 :+n=&s:Tom Collins:News

     Example 2:  Kill all articles which are neither  from  `Tom'  or  `Eve'  in
     some.group.  Select only articles from Eve:
	 some.group:~n:Tom
	 some.group:+n:Eve

     The  second example can also be written as a single entry with an or opera-
     tor (in this case, the select/kill attribute only applies to the succeeding
     strings):
	 some.group:~n|+n:Tom:Eve

     To remove expired entries, to "undo" a K command, and to make the more  ad-
     vanced  entries  with  more than one string, you will have to edit the kill
     file manually.  To recompile the file, you can use  the  :compile	command.
     When  you	invoke	nn, it will also recompile the kill file if the compiled
     version is out of date.

SHELL ESCAPES
     The !  commands available in selection and reading mode  are  identical  in
     operation	(with  one exception).	When you enter the shell escape command,
     you will be prompted for a shell command.	This command will be fed to  the
     shell  specified in the shell variable (default loaded from the SHELL envi-
     ronment variable or /bin/sh) after the following  substitutions  have  been
     performed on the command:

     File name expansion
	    The  earlier described file name expansions will be performed on all
	    arguments.

     $G     will be substituted with the name of the current news group.

     $L     will be substituted with the last component of the name of the  cur-
	    rent news group.

     $F     will be substituted with the name of the current news group with the
	    periods replaced by slashes.

     $N     will be substituted with the (local) article number (only defined in
	    reading mode).

     $A     is replaced by the full path name of the file containing the current
	    article (only defined in reading mode).

     %	    Same as $A.

     $(VAR)
	    is replaced by the string value of the environment variable VAR.

     When  the	shell  command is completed, you will be asked to hit any key to
     continue.	If you hit the !  key again, you will  be  prompted  for  a  new
     shell  command.  Any other key will redraw the screen and return you to the
     mode you came from.

     Related variables: shell, shell-restrictions.

MISCELLANEOUS COMMANDS
     Below are more useful commands which are available in  both  selection  and
     reading modes.

     U	  {unsub}
	    Unsubscribe  to  the current group.  You will not see this group any
	    more unless you explicitly request it.  If the variable unsubscribe-
	    mark-read is set, all articles in the group will be marked read when
	    you unsubscribe.
	      If the variable keep-unsubscribed is not set, the  group	will  be
	    removed  from .newsrc.  If you are not subscribing to the group, you
	    will be given the possibility to resubscribe to the group!	This may
	    be used in connection with the G command to resubscribe a group.

     C	  {cancel}
	    Cancel (delete) an article in the current  group  or  folder.   Can-
	    celling  articles  in a folder will cause the folder to be rewritten
	    when it is closed.	In selection mode, you will be prompted for  the
	    identifier	of  the article to cancel.  Normal users can only cancel
	    their own articles.  See also the section on folder maintenance.

     Y	  {overview}
	    Provide an overview of the groups with unread articles.

     "	  {layout}
	    Change menu layout in selection mode.  The menu will be redrawn  us-
	    ing the next layout (cycling through ..., 2, 3, 4, 0, 1, ...)

     Most  of  the  commands  in nn are bound to a key and can be activated by a
     single keystroke.	However, there are a few commands that cannot  be  bound
     to a key directly.

     As  shown	in the keystroke command descriptions, all commands have a name,
     and it is possible to activate a command by name with the extended  command
     key  (:).	 Hitting this key will prompt you for the name of a command (and
     parameters).  For example, an alternative to hitting the R key to reply  to
     an article is to enter the extended command :reply followed by return.  The
     :post  and  :unshar  commands described earlier can also be bound to a key.
     The complete list of commands which can be bound to keys is provided in the
     section on Key Mappings below.

     The following extended commands cannot be bound to a  key,  mainly  because
     they require additional parameters on the prompt line, or because it should
     not be possible to activate them too easily.

     :admin
	    Enter  administrative  mode.   This is identical in operation to the
	    nnadmin(1M) program.

     :bug   Prepare and send a bug report to the nn-bugs mailing address.

     :cd [ directory ]
	    Change current working directory.  If the directory argument is  not
	    provided, nn will prompt for it.

     :clear
	    Clear the screen (without redraw).	This may be useful at the begin-
	    ning  of  the init file (possibly guarded by "on program nn"), or in
	    some macros.

     :compile
	    Recompile the kill file.  This is not necessary under normal  opera-
	    tion  since nn automatically compiles the file on start-up if it has
	    changed, but it can be used if you modify the kill file while nn  is
	    suspended.

     :coredump
	    Abort with a core dump.  For debugging purposes only.

     :define macro
	    Define  macro number macro as described in the Macro Definition sec-
	    tion below.  If macro is omitted, the next free macro number will be
	    chosen.

     :dump table
	    Same as the :show command described below.

     :help [ subject ]
	    Provide online help on the specified subject.  If you omit the  sub-
	    ject, a list of the available topics will be given.

     :load [ file ]
	    Load  the specified file.  If the file argument is omitted, the init
	    file is reloaded.  The sequence part (if present) is ignored.

     :local variable [ value ]
	    Make the variable local to the current group.  Subsequent changes to
	    the variable will only be effective until the current group is left.
	    If a value is specified, it will be assigned to the local  variable.
	    To	assign	a new value to a boolean variable, the values on and off
	    must be used.

     :lock variable
	    Lock the specified variable so it cannot be modified.

     :man   Call up the online manual.	The manual  is	presented  as  a  normal
	    folder with the program name in the `From' field and the section ti-
	    tle  in  the  `subject' field.  All the normal commands related to a
	    folder works for the online manual as well, e.g. you  can  save  and
	    print sections of the manual.

     :map arguments
	    This  is  the  command used for binding commands to the keys.  It is
	    fully described in the Key Mapping section below.

     :mkdir [ directory ]
	    Create the directory (and the directories in  its  path).	It  will
	    prompt for at directory name if the argument is omitted.

     :motd  Show the message of the day (maintained by the news administrator in
	    the  file  "motd"  in the lib directory.  This file is automatically
	    displayed on start-up whenever it changes if the  motd  variable  is
	    set.

     :pwd   Print path name of current working directory on message line.

     :q     Has  no effect besides redrawing the screen if necessary.  If an ex-
	    tended command (one which is prefixed by a :)  produces  any  output
	    requirering the screen to be redrawn, the screen will not be redrawn
	    immediately if the variable delay-redraw is set (useful on slow ter-
	    minals).   Instead another : prompt is shown to allow you to enter a
	    new extended command immediately.  It is sufficient to hit return to
	    redraw the screen, but it has been my experience that entering q re-
	    turn in this situation happens quite often, so it was made a no-op.

     :q!    Quit nn without updating the .newsrc file.

     :Q     Quit nn.  This is equivalent to the normal Q command.

     :rmail
	    Open your mailbox (see the mail variable) as a folder  to  read  the
	    incoming  messages.  This is not a full mail interface (depending on
	    the nn configuration, you may not be able to  delete  messages,  add
	    cc: on replies, etc), but it can give you a quick glance at new mail
	    without leaving nn.

     :set variable [ value ]
	    Set  a  boolean  variable to true or assign the value to a string or
	    integer variable.  The :set command is described in details  in  the
	    section on VARIABLES.

     :sh    Suspend nn, or if that is not possible, spawn an interactive shell.

     :show groups mode
	    Show  the  total number or the number of unread articles in the cur-
	    rent group, depending on mode: all (list the number of unread  arti-
	    cles in all groups including groups which you have unsubscribed to),
	    total  (list  the  total number of articles in all existing groups),
	    sequence (list unread groups in presentation sequence order), subscr
	    (list all subscribed groups), unsub (list unsubscribed groups only).
	    Any other mode results in a listing of the number of unread articles
	    in all subscribed groups including those you  have	suppressed  with
	    the `!'  symbol in the group presentation sequence.  To get just the
	    currently  unread  groups  in the presentation sequence, use the `Y'
	    {overview} command.

     :show kill
	    Show the kill entries that applies to the current group and  to  all
	    groups.

     :show rc [ group ]
	    Show  the  .newsrc	and  select  file entries for the current or the
	    specified group.

     :show map [ mode ]
	    Show the key bindings in the current or specified mode.

     :sort [ mode ]
	    Reorder the articles on the menu according to mode or if omitted  to
	    the default sort-mode.  The following sorting modes are available:
	    arrival:  list  articles  by  local article number which will be the
	    same as the order in which they arrived on the system (unless groups
	    are merged),
	    subject: articles with identical subjects are  grouped  and  ordered
	    after age of the oldest article in the group,
	    lexical: subjects in lexicographical order,
	    age: articles ordered after posting date only,
	    sender: articles ordered after sender's name.

     :toggle variable
	    Toggle a boolean variable.

     :unread [ group ] [ articles ]
	    Mark  the  current	(or specified) group as unread.  If the articles
	    argument is omitted, the number of unread articles in the group will
	    be set to the number of unread articles when nn was invoked.  Other-
	    wise, the argument specifies the number of unread articles.

     :unset variable
	    Set a boolean variable to false or clear an integer variable.

     :x     Quit nn and mark all articles in the current group as read!

     Related variables: backup,  bug-report-address,  delay-redraw,  keep-unsub-
     scribed, unsubscribe-mark-read, mail, pager, sort-mode.

CATCH UP
     If  you have not read news for some time, there are probably more news than
     you can cope with.  Using the option -a0 nn  will	put  you  into	catch-up
     mode.

     The first question you will get is whether to catch up interactively or au-
     tomatically.   If you instruct nn to catch up automatically, it will simply
     mark all articles in all groups as read, thus bringing you  completely  up-
     to-date.

     If  you  choose the interactive mode, nn will locate all groups with unread
     articles, and for each group it will prompt you for an action  to	take  on
     the group.  An action is selected using a single letter followed by return.
     The following actions are available:

     y	    Mark all articles as read in current group.

     n	    Do	not update group (this is the default action if you just hit re-
	    turn).

     r	    Enter reading mode to read the group.

     U	    Unsubscribe to the group.

     ?	    Give a list of actions.

     q	    Quit.  When you quit, nn will ask whether the  rest  of  the  groups
	    should  be updated unconditionally or whether they should remain un-
	    read.

VARIABLES AND OPTIONS
     It is possible to control the behaviour of nn through the setting (and  un-
     setting)  of the variables described below.  There are several ways of set-
     ting variables:
     - Through command line options when nn is invoked.
     - Through assignments on the command line when nn is invoked.
     - Through global set commands in the init file.
     - Through set or local commands executed from entry macros.
     - Through the :set extended command when you run nn.

     There are four types of variables:
     - Boolean variables
     - Integer variables
     - String variables
     - Key variables

     Boolean variables control a specific function in nn, e.g.	whether the cur-
     rent time is shown in the prompt line.  A boolean variable is set	to  true
     with the command
	  set variable
     and it is set to false with either of the following (equivalent) commands:
	  unset variable
	  set novariable

     You can also toggle the value of a boolean variable using the command:
	  toggle variable

     For example:
	  set time
	  unset time
	  set notime
	  toggle time

     Integer variables control an amount e.g. the size of the preview window, or
     the  maximum  number  of articles to read in each group.  They are set with
     the following command:
	  set variable value
     In some cases, not setting an integer value has a special meaning, for  ex-
     ample,  not  having a minimal preview window or reading all articles in the
     groups no matter how many there are.  The special meaning can be  re-estab-
     lished by the following command:
	  unset variable
     For example:
	  set window 7
	  unset limit

     String  variables	may specify directory names, default values for prompts,
     etc.  They are set using the command
	  set variable string
     Normally, the string value assigned to the variable  value  starts  at  the
     first  non-blank  character  after the variable name and ends with the last
     non-blank character (excluding comments) on the line.  To	include  leading
     or trailing blanks, or the comment start symbol, #, in the string they must
     be escaped using a backslash `\', e.g. to set included-mark to the string "
     # ", the following assignment can be used:
	  set included-mark  \ \#\   # blank-#-blank
     To  include a backslash in the string, it must be duplicated `\\'.  A back-
     slash may also be used to include the following special characters  in  the
     string:   \a=alarm,  \b=backspace,  \e=escape,  \f=form-feed,  \n=new-line,
     \r=return, \t=tab.

     Key variables control the keys used to  control  special  functions  during
     user  input  such	as  line editing and completion.  They are set using the
     command
	  set variable key-name

     A variable can be locked which makes further modification of  the	variable
     impossible:
	  lock variable
     This  can be used in the setup init file which is loaded unconditionally to
     enforce local conventions or restrictions.  For example,  to  fix	the  in-
     cluded-mark  variable  to	the  string  ">",  the following commands can be
     placed in the setup file:
	  set included-mark >
	  lock included-mark
     Some variables only make sense when set on the command line, since they are
     examined early in startup, before the init files are read.  The syntax  for
     setting variables on the command line is:
	  variable=value
     The value may need to be quoted if it contains white space or special char-
     acters.   They can be intermixed with other options, and are examined prior
     to other argument parsing.

     The current variable settings can be shown with the :set command:

     :set (without arguments)
	    This will give a listing of the variables which have been set in ei-
	    ther the init file or interactively.

     :set all
	    This will give a listing of all variables.	Modified variables  will
	    be	marked with a `*' and local variables will be marked with a `>'.
	    A locked variable is marked with a `!'.

     :set /regexp
	    This will give a listing of all variables  whose  name  matches  the
	    given regular expression.

     :set partial-name space
	    The  space (comp1-key) key will complete the variable name as usual,
	    but as a side effect it will display the variable's current value in
	    the message line.

     Variables are global by default, but a local instantiation of the	variable
     can  be  created using the :local command.  The local variable will overlay
     the global variable as long as the current group is active, i.e. the global
     variable will be used again when you exit the current group.   The  initial
     value of the local variable will be the same as the global variable, unless
     a new value is specified in the :local command:
	  :local variable [ value ]

     The following variables are available:

     also-full-digest	 (boolean, default false)
	    When  a  digest is split, the digest itself is not normally included
	    on the menu, and as such the initial  adminstrative  information  is
	    not  available.   Setting  also-full-digest will cause the (unsplit)
	    digest to be included on the menu.	These articles are marked with a
	    @ at the beginning of the subject.

     also-subgroups (boolean, default true)
	    When set, a group name in the presentation sequence will also  cause
	    all  the  subgroups  of  the  group  to  be  included,  for example,
	    comp.unix will also include comp.unix.questions,  etc.   When  also-
	    subgroups  is not set, subgroups are only included if the group name
	    is followed by a `.' in which case the main group is  not  included,
	    i.e.   `comp.unix' is not included when `comp.unix.' is specified in
	    the presentation sequence, and vice-versa.	Following a  group  name
	    by	an asterisk `*', e.g. comp.unix*, will include the group as well
	    as all subgroups independently of the setting of also-subgroups.

     append-signature-mail    (boolean, default false)
	    When false, it is assumed that the .signature file is  automatically
	    appended  to responses sent via E-mail.  If true, .signature will be
	    appended to the letter (see query-signature).

     append-signature-post    (boolean, default false)
	    When false, it is assumed that the .signature file is  automatically
	    appended to posted articles.  If true, .signature will explicitly be
	    appended to posted articles (see query-signature).

     attributes symbols  (string, default ....)
	    Each element in this string represents a symbol used to represent an
	    article  attribute when displayed on the screen.  See the section on
	    Marking Articles and Attributes.

     auto-junk-seen (boolean, default true)
	    When set, articles which have the seen attribute (,) will be  marked
	    read  when	the  current  group is left.  If not set, these articles
	    will still be either unread or marked seen the next time  the  group
	    is entered (see also confirm-junk-seen and retain-seen-status).

     auto-preview-mode	      (boolean, default false)
	    Enables  Auto  Preview  Mode.  In this mode, selecting an article on
	    the menu using its article id (letter a-z) will enter  preview  mode
	    on	that  article  immediately.  Furthermore, the `n' {next-article}
	    command will preview the next article on the menu only if it has the
	    same subject as the current article; otherwise, it	will  return  to
	    the  menu  with the cursor placed on the next article.  The continue
	    command at the end of the article and the `=' {goto-menu} returns to
	    the menu immediately as usual.

     auto-read-mode-limit N   (integer, default 0)
	    When operating in auto reading mode, nn will auto-select all  unread
	    articles  in  the group, skip the article selection phase, and enter
	    reading mode directly after entry to the group.
	      Auto reading mode is disabled when auto-read-mode-limit  is  zero;
	    it is activated unconditionally if the value is negative, and condi-
	    tionally  if the value is greater than zero and the number of unread
	    articles in the current group does not exceed the given value.

     auto-select-closed mode  (integer, default 1)
	    Normally, selecting a closed subject (usually in  consolidated  menu
	    mode)  will  select (or deselect) all unread articles with the given
	    subject (or all articles if they are all read).  This behaviour  can
	    be changed via the value of this variable as follows:
	    0: select only the first article with the subject (shown on menu).
	    1: select only the unread articles with the subject.
	    2: select all available articles with the subject.

     auto-select-rw (boolean, default false)
	    If set, a subject of an article read or posted is automatically used
	    for  subsequent  auto-selecting  (if not already selected).  This is
	    the most efficient way to see your own posts automatically.

     auto-select-subject (boolean, default false)
	    When set, selecting an article from the menu using	the  article  id
	    (a-z), all articles on the menu with the same subject will automati-
	    cally be selected as well.

     backup    (boolean, default true)
	    When  set,	a copy of the initial .newsrc and select files will save
	    be the first time they are changed.  nn remembers the  initial  con-
	    tents  of  these files internally, so the backup variable can be set
	    any time if not set on start-up.

     backup-folder-path file  (string, default "BackupFolder~")
	    When removing deleted articles from a folder, this variable  defines
	    the name of the file where a (temporary) copy of the original folder
	    is	saved.	If the file name doesn't contain a `/', the file will be
	    located in the .nn directory.  Otherwise the file name is  used  di-
	    rectly  as	the  relative  or full path name of the backup file.  If
	    possible, the old folder will be renamed to the backup folder  name;
	    otherwise the old folder is copied to the backup folder.

     backup-suffix suffix     (string, default ".bak")
	    The  suffix  appended to file names to make the corresponding backup
	    file name (see backup).

     bug-report-address address    (string, default mtpins@nndev.org)
	    The mail address to which bug reports created with the :bug  command
	    are sent.

     case-fold-search	      (boolean, default true)
	    When  set, string and regular expression matching will be case inde-
	    pendent.  This is related to all commands matching on names or  sub-
	    jects, except in connection with auto-kill and auto-select where the
	    individual kill file entries specifies this property.

     charset charset	 (string, default "us-ascii")
	    The  character  set  in  use on your terminal. Legal values are "us-
	    ascii", "iso-8859-X", where X is a	nonzero  digit,  and  "unknown".
	    Setting  this  variable  also sets the data-bits variable to the de-
	    fault bit width of the character set  (7  for  "us-ascii"  and  "un-
	    known", 8 for the "iso-8859-X" sets).
	    The  value	of  this variable also determines wether nn allows 8-bit
	    characters in the body of articles being posted  and  letters  being
	    mailed  (unless the value is "unknown", in which case this is deter-
	    mined by the value of the data-bits  variable).   If  necessary,  nn
	    will  add  extra headers to the message indicating its the character
	    set.

     check-group-access  (boolean, default false)
	    When set, nn will perform a check on the readability  of  a  group's
	    readability  before showing the menu for that group.  Normally, this
	    is not necessary since all users traditionally have  access  to  all
	    news  groups.   Setting  (and  locking) this variable may be used to
	    limit access to a news group via the permissions  and  ownership  of
	    the  group's  spool  directory  (this  will  only  work for non-NNTP
	    sites).

     collapse-subject offset  (integer, default 25)
	    When set (non-negative), subject lines which are too long to be pre-
	    sented in full on the menus will be "collapsed" by removing a suffi-
	    cient number of characters from the subject starting  at  the  given
	    offset  in	the  subject.  This is useful in source groups where the
	    "Part (01/10)" string sometimes disappears from the menu.  When  not
	    set (or negative), the subjects are truncated.

     columns col    (integer, default screen width)
	    This variable contains the screen width i.e. character positions per
	    line.

     comp1-key key  (key, default space)
	    The key which gives the first/next completion, and the default value
	    when nn is prompting for a string, e.g. a file name.

     comp2-key key  (key, default tab)
	    The  key  which ends the current completion and gives the first com-
	    pletion for the next component when nn is prompting  for  a  string,
	    e.g. a file name.

     compress	    (boolean, default false)
	    This  variable  controls  whether text compression (see the compress
	    command) is turned on or off when an article is shown.  The compres-
	    sion is still toggled for the current article with the compress com-
	    mand key.

     confirm-append	 (boolean, default false)
	    When set, nn will ask for confirmation before appending  an  article
	    to an existing file (see also confirm-create).

     confirm-auto-quit	      (boolean, default false)
	    When  set, nn will ask for confirmation before quitting after having
	    read the last group.  If not confirmed, nn will recycle the  presen-
	    tation  sequence  looking  for groups that were skipped with the `N'
	    {next-group} command.  But it will not look for new articles arrived
	    since the invocation of nn.

     confirm-create	 (boolean, default true)
	    When set, nn will ask for confirmation before creating a new file or
	    directory when saving or unpacking an article (see also  confirm-ap-
	    pend).

     confirm-entry	 (boolean, default false)
	    When  set, nn will ask for confirmation before entering a group with
	    more than confirm-entry-limit unread articles  (on	the  first  menu
	    level).   It  is  useful on slow terminals if you don't want to wait
	    until nn has drawn the first menu to be able to skip the group.
	      Answering no to the "Enter?" prompt will cause nn to skip  to  the
	    next group without marking the current group as read.  If you answer
	    by hitting interrupt, nn will ask the question "Mark as read?" which
	    allows  you  to  mark  the current group as read before going to the
	    next group.  If this second question is also answered by hitting in-
	    terrupt, nn will quit immediately.

     confirm-entry-limit articles  (integer, default 0)
	    Specifies the minimum number of unread articles in a group for which
	    the confirm-entry functionality is activated.

     confirm-junk-seen	      (boolean, default false)
	    When set, nn will require confirmation before marking seen	articles
	    as read when auto-junk-seen is set.

     confirm-messages	      (boolean, default false)
	    In	some cases, nn will sleep one second (or more) when it has shown
	    a message to the user, e.g.  in  connection  with  macro  debugging.
	    Setting  confirm-messages  will  cause nn to wait for you to confirm
	    all messages by hitting any key.  (It will show the symbol <> to in-
	    dicate that it is awaiting confirmation.)

     consolidated-manual (boolean, default false)
	    When set, the online manual will be presented with one menu line for
	    each program in the nn package.

     consolidated-menu	      (boolean, default false)
	    When set, nn will automatically close all multi-article subjects  on
	    entry  to  a group, so that each subject only occur once on the menu
	    page.

     counter-delim-left  (string, default "[")
	    The delimiter string output to the left of the article counter in  a
	    closed subject's menu line.

     counter-delim-right (string, default "] ")
	    The delimiter string output to the right of the article counter in a
	    closed subject's menu line.

     counter-padding pad      (integer, default 5)
	    On	a  consolidated  menu, the subjects may not be very well aligned
	    because the added [...] counters  have  varying  length.   To  (par-
	    tially)  remedy  this,  all counters (and subjects without counters)
	    are prefixed by up to pad spaces to get better alignment.	Increas-
	    ing it further may yield practially perfect alignment at the cost of
	    less space for the subject itself.

     cross-filter-seq	      (boolean, default true)
	    When  set, cross posted articles will be presented in the first pos-
	    sible group, i.e. according to  the  current  presentation	sequence
	    (cross-post  filtering  on	sequence).  The article is automatically
	    marked read in the other cross posted groups unless you  unsubscribe
	    to	the  first  group in which it was shown before reading the other
	    groups.  Likewise, it is sufficient to leave the article  unread  in
	    the first group to keep it for later handling.
	      If  not set, cross-postings are shown in the first group occurring
	    on the Newsgroups: line which the user subscribes to (i.e.	you  let
	    the  poster decide which group is most appropriate to read his post-
	    ing).

     cross-post 	 (boolean, default false)
	    Normally, nn will only show cross-posted articles in the first  sub-
	    scribed  group  on the Newsgroups: line.  When cross-post is set, nn
	    will show cross-posted articles in all subscribed  groups  to  which
	    they are posted.

     cross-post-limit N        (integer, default 0)
	    If	this  variable is set to a value other than 0, then any articles
	    posted to more than N newsgroups are automatically skipped.  A value
	    of 5 is pretty good for discarding ``spam'' articles.

     data-bits bits (integer, default 7)
	    When set to 7, nn will display characters with the 8th bit set using
	    a meta-notation M-7bit-char.  If set to 8, these characters are sent
	    directly to the screen (unless monitor is set). Setting the  charset
	    variable also sets this variable to the default bit width of charac-
	    ter set.
	    It	also  controls	whether  keyboard input is 7 or 8 bits, and thus
	    whether key maps contain 127 or 255 entries.  See  the  key  mapping
	    section for more details.
	    If	the charset has value "unknown", the value of data-bits also de-
	    termines wether nn allows 8-bit characters in the body  of	articles
	    being  posted  and letters being mailed (this is normally determined
	    directly by the charset variable).

     date      (boolean, default true)
	    If set nn will show the article posting date when articles are read.

     debug mask     (integer, default 0)
	    Look in the source if you are going to use this.

     decode-header-file file  (string, default "Decode.Headers")
	    The name of the file in which the header and initial text  of  arti-
	    cles  decoded  with  the  :decode command is saved.  Unless the file
	    name starts with a `/', the file will be created in the same  direc-
	    tory  as  the  decoded  files.  The information is not saved if this
	    variable is not set.

     decode-skip-prefix N     (integer, default 2)
	    When non-null, the :decode command will automatically  skip  upto  N
	    characters	at  the  beginning  of each line to find valid uuencoded
	    data.  This allows nn to automatically decode (multi-part)	postings
	    which are both uuencoded and packed with shar.

     default-distribution distr    (string, default "world")
	    The distribution to use as the default suggestion when posting arti-
	    cles using the follow and post commands if the corresponding follow-
	    distribution  or post-distribution variable contains the default op-
	    tion.

     default-kill-select [1]days   (number, default 30)
	    Specifies the default action for the K {kill-select} command if  the
	    first  prompt is answered by return.  It contains the number of days
	    to keep the kill or select entry in the kill file (1-99  days).   If
	    it	has  the  value days+100 (e.g. 130), it denotes that the default
	    action is to select rather than kill on the subject for  the  speci-
	    fied period.

     default-save-file file   (string, default +$F)
	    The default save file used when saving articles in news groups where
	    no	save file has been specified in the init file (either in a save-
	    files section or in the presentation  sequence).   It  can	also  be
	    specified  using the abbreviation "+" as the file name when prompted
	    for a file name even in groups with their own save file.

     delay-redraw	 (boolean, default false)
	    Normally, nn will redraw the screen after extended	commands  (:cmd)
	    that  clear the screen.  When delay-redraw is set nn will prompt for
	    another extended command instead of redrawing the screen (hit return
	    to redraw).

     echo-prefix-key	      (boolean, default true)
	    When true, hitting a prefix key (see the section on key mapping  be-
	    low)  will	cause the prefix key to be echoed in the message line to
	    indicate that another key is expected.

     edit-patch-command  (boolean, default true)
	    When true, the :patch command will show  the  current  patch-command
	    and give you a chance to edit it before applying it to the articles.

     edit-print-command  (boolean, default true)
	    When  true,  the print command will show the current printer command
	    and give you a chance to edit it before printing the articles.  Oth-
	    erwise the articles are just printed using the current printer  com-
	    mand.

     edit-response-check (boolean, default true)
	    When editing a response to an article, it normally does not have any
	    meaning  to send the initial file prepared by nn unaltered, since it
	    is either empty or only contains included material.  When this vari-
	    able is set, exiting the editor without having changed the file will
	    automatically abort the response action without confirmation.

     edit-unshar-command (boolean, default false)
	    When true, the :unshar command will show the current  unshar-command
	    and give you a chance to edit it before applying it to the articles.

     editor command (string, default not set)
	    When  set,	it will override the current EDITOR environment variable
	    when editing responses and new articles.

     embedded-header-escape string (string, default '~')
	    When saving an article to a file, header lines embedded in the  body
	    of the article are escaped using this string to make it possible for
	    nn	to  split the folder correctly afterwards.  Header lines are not
	    escaped if this variable is not set.

     enter-last-read-mode mode	   (integer, default 1)
	    Normally, nn will remember which group is active when you quit,  and
	    offer  to  jump  directly  to  this group when you start nn the next
	    time.  This variable is used to control this behaviour.  The follow-
	    ing mode values are recognized:
	    0: Ignore the remembered group (r.g.).
	    1: Enter r.g. if the group is unread (with user confirmation)
	    2: Enter r.g. or first unread group after it in the sequence (w/conf).
	    3: Enter r.g. if the group is unread (no confirmation)
	    4: Enter r.g. or first unread group after it in the sequence (no conf).

     entry-report-limit articles   (integer, default 300)
	    Normally, nn will just move the cursor to the upper left  corner  of
	    the  screen  while it is reading articles from the database on entry
	    to a group.  For large groups this may take more than a fraction  of
	    a  second, and nn can then report what it is doing.  If it must read
	    more articles than the number specified by this  variable,	nn  will
	    report which group and how many articles it is reading.

     erase-key key  (key, default tty erase key)
	    The  key  which erases the last input character when nn is prompting
	    for a string, e.g. a file name.

     expert	    (boolean, default false)
	    If set nn will use slightly shorter prompts (e.g. not tell you  that
	    ?  will  give  you	help),	and be a bit less verbose in a few other
	    cases (e.g. not remind you that posted articles  are  not  available
	    instantly).

     expired-message-delay pause   (integer, default 1)
	    If	a  selected  article is found to have been expired, nn will nor-
	    mally give a message about this and sleep for a  number  of  seconds
	    specified  by  this  variable.   Setting  this variable to zero will
	    still make nn give the message without sleeping afterwards.  Setting
	    it to -1 will cause the message not to be shown at all.

     flow-control   (boolean, default true)
	    When set, nn will turn on xon/xoff flow-control before writing large
	    amounts of text to the screen.  This should guard against lossage of
	    output, but in some network configurations it has had  the	opposite
	    effect, losing several lines of the output.  This variable is always
	    true on systems with CBREAK capabilities which can do single charac-
	    ter reads without disabling flow control.

     flush-typeahead	 (boolean, default false)
	    When  true,  nn  will flush typeahead prior to reading commands from
	    the keyboard.  It will not flush typeahead while reading  parameters
	    for a command, e.g. file names etc.

     folder directory	 (string, default ~/News)
	    The  full  pathname of the folder directory which will replace the +
	    in folder names.  It will be initialized from the FOLDER environment
	    variable if it is not set in the init file.

     folder-format-check (boolean, default true)
	    When saving an article with a full or partial header in an	existing
	    folder,  nn will check the format of the folder to be able to append
	    the article in the proper format.  If  this  variable  is  not  set,
	    folders  are assumed to be in the format specified via the mmdf-for-
	    mat and mail-format variables, and articles are saved in that format
	    without checking.  Otherwise, the *-format variables are  only  used
	    to determine the format for new folders.

     folder-save-file file    (string, default not set)
	    The default save file used when saving articles from a folder.

     follow-distribution words	   (string, default see below)
	    This  variable  controls how the Distribution: header is constructed
	    for a follow-up to an original article.  Its  value  is  a	list  of
	    words selected from the following list:
	    [ [ always ] same ] [ ask ] [ default | distribution ]
	    This is interpreted in two steps:
	    -  First  the default distribution is determined.  If same is speci-
	    fied and the original  article  has  a  Distribution:  header,  that
	    header  is	used.	Else if default is specified (or distribution is
	    omitted), the value of default-distribution is used.   And	finally,
	    if	only  a distribution (any word) is specified that is used as the
	    default.
	    - Then if ask is specified, the user will be asked	to  confirm  the
	    default  distribution  or provide another distribution.  However, if
	    always (and same) is specified, and the default was taken  from  the
	    original  article's  distribution, the original distribution is used
	    without confirmation.
	    The default value of follow-distribution  is  always  same	default,
	    i.e.  use  either the original distribution or the default-distribu-
	    tion without confirmation in either case.

     from-line-parsing strictness  (integer, default 2)
	    Specifies how strict nn must parse a "From " line  in  a  folder  to
	    recognize it as a mail format message separator line.  The following
	    strictness	values	determine  whether  a line starting with "From "
	    will be recognized as a separator line:
		 0: Always.
		 1: Line must have at least 8 fields.
		 2: Line must contain a valid date and time (ctime style).

     fsort	    (boolean, default true)
	    When set, folders are sorted alphabetically according to the subject
	    (and age).	Otherwise, the articles in a folder will be presented in
	    the sequence in which they were saved.

     guard-double-slash  (boolean, default false)
	    Normally, when entering a file name, entering two slashes `//' in  a
	    row (or following a slash by a plus `/+') will cause nn to erase the
	    entire  line and replace it with the `/' (or `+').	On some systems,
	    two slashes are used in network file names,  and  on  those  systems
	    guard-double-slash	can  be set; that will cause nn to require three
	    slashes in a row to clear the input.

     header-lines list	 (string, no default)
	    When set, it determines the list of header	fields	that  are  shown
	    when  an article is read instead of the normal one line header show-
	    ing the author and subject.  See the full description in the section
	    on Customized Article Headers below.

     help-key key   (key, default ?)
	    The key which ends the current completion and gives a list of possi-
	    ble completions for the next component when nn is  prompting  for  a
	    string, e.g. a file name.

     ignore-re	    (boolean, default false)
	    If set, articles with subjects already seen in a previous invocation
	    of	nn or another newsreader - and not auto-selected - are automati-
	    cally killed.  A great way to read even less news!

     ignore-xon-xoff	      (boolean, default false)
	    Normally, nn will ignore ^S and ^Q in the input  from  the	terminal
	    (if  they are not handled in the tty driver).  Setting this variable
	    will treat these characters as normal input.

     include-art-id	 (boolean, default false)
	    The first line in a response with included material  normally  reads
	    "...somebody... writes:" without a reference to the specific article
	    from which the quotation was taken (this is found in the References:
	    line).   When  this  variable is set, the line will also include the
	    article  id  of  the  referenced  article:	"In  ...article...   ...
	    writes:".

     include-full-header (boolean, default false)
	    When  set,	the mail (M) command will always include the full header
	    of the original article.  If it is not set,  it  only  includes  the
	    header when the article is forwarded without being edited.

     include-mark-blank-lines (boolean, default false)
	    When set, the included-mark is placed on blank lines in included ar-
	    ticles.   Otherwise,  blank lines are left blank (to make it easy to
	    delete whole paragraphs with `d}' in vi and `C-@ M-] C-W' in emacs).

     included-mark string     (string, default ">")
	    This string is prefixed to all lines in the  original  article  that
	    are included in a reply or a follow-up.  (Now you have the possibil-
	    ity  to  change  it, but please don't.  Lines with a mixture of pre-
	    fixes like
	       : orig-> <> } ] #- etc.
	    are very difficult to comprehend.  Let's all use the standard folks!
	    (And hack inews if it is the 50% rule that bothers you.)

     inews shell-command (string, default "INEWS_PATH -h")
	    The program which is invoked by nn to deliver an article to the news
	    transport.	The program will be given a complete article including a
	    header containing the newsgroups to  which	the  article  is  to  be
	    posted.   See also inews-pipe-input.  It is not used when cancelling
	    an article!

     inews-pipe-input	      (boolean, default true)
	    When set, the article to be posted will be piped into the inews pro-
	    gram.  Otherwise, the file containing the article will be  given  as
	    the first (and only) argument to the inews command.

     initial-newsrc-file file (string, default '.defaultnewsrc')
	    Defines the name of a file which is used as the initial .newsrc file
	    for  new users.  The name may be a full path name, or as the default
	    a file name which will be looked for in a number of places:  in  the
	    standard  news lib directory (where it can be shared with other news
	    readers), in nn's lib directory,  and  in  the  database  directory.
	    Groups which are not present in the initial .newsrc file will be au-
	    tomatically unsubscribed provided new-group-action is set to a value
	    allowing unsubscribed groups to be omitted from .newsrc.

     keep-backup-folder  (boolean, default false)
	    When  set,	the  backup folder (see backup-folder-path) created when
	    removing deleted articles from a folder is not removed.  Notice that
	    a backup folder is not created if all articles are	removed  from  a
	    folder!

     keep-unsubscribed	      (boolean, default true)
	    When  set,	unsubscribed groups are kept in .newsrc.  If not set, nn
	    will automatically remove all unsubscribed	from  .newsrc  if  tidy-
	    newsrc is set.  See also unsubscribe-mark-read.

     kill      (boolean, default true)
	    If	set,  nn performs automatic kill and selection based on the kill
	    file.

     kill-debug 	 (boolean, default false)
	    When set, nn will display a trace of the auto-kill/select process on
	    entry to a group.  It is automatically turned off if `q' is  entered
	    as the answer to a "hit any key" prompt during the debug output.

     kill-key key   (key, default tty kill key)
	    The  key  which  deletes the current line when nn is prompting for a
	    string, e.g. a file name.

     kill-reference-count N   (integer, default 0)
	    When this variable is non-zero, all articles which have  N	or  more
	    references	on  the References: line (corresponding to the number of
	    >>'s on the menu line) will be auto-killed if they are not	auto-se-
	    lected  (or  preserved)  via  an  entry in the kill file.  It should
	    probably not be used globally for all groups, but can be  set  on  a
	    per-group via the entry macros.

     layout number  (integer, default 1)
	    Set the menu layout.  The argument must be a number between 0 and 4.

     limit max-articles  (integer, default infinite)
	    Limit the maximum number of articles presented in each group to max-
	    articles.	The  default is to present all unread articles no matter
	    how many there are.  Setting this variable,  only  the  most  recent
	    max-articles  articles  will be presented, but all the articles will
	    still be marked as read.  This is useful to get  up-to-date  quickly
	    if you have not read news for a longer period.

     lines lin (integer, default screen height)
	    This variable contains the screen height i.e. number of lines.

     long-menu	    (boolean, default false)
	    If	set  nn  will not put an empty line after the header line and an
	    empty line before the prompt line; this gives  you	two  extra  menu
	    lines.

     macro-debug    (boolean, default false)
	    If set nn will trace the execution of all macros.  Prior to the exe-
	    cution  of	each  command  or operation in a macro, it will show the
	    name of the command or the input string or key stroke at the  bottom
	    of the screen.

     mail file (string, default not set)
	    file  must be a full path name of a file.  If defined, nn will check
	    for arrival of new mail every minute or so by looking at the  speci-
	    fied file.

     mail-alias-expander program   (string, default not set)
	    When  set,	aliases  used  in  mail responses may be expanded by the
	    specified program.	The program will be given the completed response
	    in a file as its only argument, and the aliases should  be	expanded
	    directly in this file (of course the program may use temporary files
	    and  other	means  to  expand  the aliases as long the the result is
	    stored in the provided file).
	    Notice: currently there are no alias expanders delivered with nn.
	    Warning: Errors in the expansion process may lead  to  the	response
	    not being sent.

     mail-format    (boolean, default false)
	    When  set, nn will save articles in a format that is compatible with
	    normal mail folders.  Unless folder-format-check  is  false,  it  is
	    only  used	to specify the format used when new folders are created.
	    This variable is ignored if mmdf-format is set.

     mail-header headers (string, default not set)
	    The headers string specifies one or more extra header  lines  (sepa-
	    rated by semi-colons `;') which are added to the header of mail sent
	    from nn using the reply and mail commands.	For example:
		 set mail-header Reply-To: storm@texas.dk;Organization: TI - DK
	    To	include  a  semicolon `;' in a header, precede it by a backslash
	    (which must be doubled  because  of  the  conventions  for	entering
	    strings).

     mail-record file	 (string, default not set)
	    file  must	be  a full path name of a file.  If defined, all replies
	    and mail will be saved in this file in standard mailbox format, i.e.
	    you can use you favourite mailer (and nn) to look at the file.

     mail-script file	 (string, default not set)
	    When set, nn will use the specified file instead of the standard aux
	    script when executing the reply and mail commands.

     mailer shell-command     (string, default REC_MAIL)
	    The program which is invoked by nn to deliver a message to the  mail
	    transport.	 The  program  will be given a complete mail message in-
	    cluding a header  containing  the  recipient's  address.   See  also
	    mailer-pipe-input.

     mailer-pipe-input	      (boolean, default true)
	    When  set, the message to be sent will be piped into the mailer pro-
	    gram.  Otherwise, the file containing the message will be  given  as
	    the first (and only) argument to the mailer command.

     marked-by-next-group N   (integer, default 0)
	    Specifies  the amount of (unmarked) articles on the menu marked seen
	    by the N {next-group} command in  selection  mode.	 See  marked-by-
	    read-skip for possible values of N.

     marked-by-read-return N  (integer, default 0)
	    Specifies  the amount of (unmarked) articles on the menu marked seen
	    by the Z {read-return} command in selection  mode.	 See  marked-by-
	    read-skip for possible values of N.

     marked-by-read-skip N    (integer, default 4)
	    Specifies  the amount of (unmarked) articles on the menu marked seen
	    by the X {read-skip} command in selection mode.  The following  val-
	    ues of N are recognized:
		 0:  No articles are marked seen
		 1:  Current page is marked seen
		 2:  Previous pages are marked seen
		 3:  Previous and current pages are marked seen
		 4:  All pages are marked seen

     mark-overlap   (boolean, default false)
	    When  set,	nn will draw a line (using the underline capabilities of
	    the terminal if possible) to indicate the end of  the  overlap  (see
	    the overlap variable).

     mark-overlap-shading     (boolean, default false)
	    When set, nn will shade overlapping lines (see the overlap variable)
	    using the attributes defined by the shading-on and shading-off vari-
	    ables  (of if not set, with the underline attribute).  This is typi-
	    cally used to give overlapping lines a different colour on terminals
	    which have this capability.

     menu-spacing mode	 (integer, default 0)
	    When mode is a non-zero number as described below, nn will add blank
	    lines between the lines on the menu to increase readability  at  the
	    cost  of presenting fewer articles on each page.  The following val-
	    ues of mode are recognized:
	    0: Don't add blank lines between menu lines.
	    1: Add a blank line between articles with different subjects.
	    2: Add a blank line between all articles.

     merge-report-rate rate   (integer, default 1)
	    When nn is invoked with the -m option (directly or	via  nngrap),  a
	    status report of the merging process is displayed and updated on the
	    screen every rate seconds.	The report contains the time used so far
	    and an estimate of the time needed to complete the merge.

     message-history N	 (integer, default 15)
	    Specifies  the maximum number, N, of older messages which can be re-
	    called with the ^P {message} command.

     min-window size	 (integer, default 7)
	    When the window variable is not set, nn will  clear  the  screen  to
	    preview  an  article if there are less than size unused lines at the
	    bottom of the menu screen.

     mmdf-format    (boolean, default false)
	    When set, nn will save articles in MMDF format.  Unless  folder-for-
	    mat-check  is false, it is only used to specify the format used when
	    new folders are created.

     monitor	    (boolean, default false)
	    When set, nn will show all characters in the received messages using
	    a "cat -v" like format.  Otherwise, only  the  printable  characters
	    are shown (default).

     motd      (boolean, default true)
	    When  set,	nn will display the message of the day on start-up if it
	    has changed since it was last shown.  The message is taken from  the
	    file  "motd" in the lib directory.	It can also be shown (again) us-
	    ing the :motd command.

     multi-key-guard-time timeout  (integer, default 2)
	    When reading a multi-key sequence from the keyboard, nn will  expect
	    the  characters constituting the multi-key to arrive "quickly" after
	    each other.  When a partial multi-key sequence is read, nn will wait
	    (at least) timeout tenths of a second  for	each  of  the  following
	    characters	to  arrive  to	complete the multi-key sequence.  If the
	    multi-key sequence is not completed within this period, nn will read
	    the partial multi-key sequence  as	individual  characters	instead.
	    This  way  it  is still possible to use for example the ESC key on a
	    terminal with vt100 like arrow keys.  When nn is used via an  rlogin
	    connection,  you  may  have  to increase the timeout to get reliable
	    recognition of multi-keys.

     new-group-action action  (integer, default 3)
	    This variable controls how new groups are treated by nn.  It  is  an
	    integer  variable,	and  the  following values can be used.  Some of
	    these actions (marked with an *) will  only  work  when  keep-unsub-
	    scribed is set, since the presence of a group in .newsrc is the only
	    way to recognize it as an old group:
	    0)	Ignore groups which are not in .newsrc.  This will obviously in-
	    clude  new	groups,  and  therefore  you  must explictly add any new
	    groups that you care about (by editting the .newsrc file,  or  using
	    the G menu command and then subscribing to the group).  When NNTP is
	    being  used,  this setting prevents the active.times data from being
	    read from the server; this can be helpful when using  a  slow  link,
	    since the data can often be hundreds of KBytes long.
	    1*)   Groups  not  in  .newsrc are considered to be new, and are in-
	    serted at the beginning of the .newsrc file.
	    2*)  Groups not in .newsrc are considered to be  new,  and	are  ap-
	    pended to the end of the .newsrc file.
	    3)	 New  groups  are  recognized via a time-stamp saved in the file
	    .nn/LAST and in the database, i.e. it is not dependent on the groups
	    currently in .newsrc.  The new groups are automatically appended  to
	    .newsrc  with  subscription.  Old groups not present in .newsrc will
	    be considered to be unsubscribed.
	    4)	As 3, but the user is asked to confirm that the new group should
	    be appended to .newsrc.  If rejected, the group will not be appended
	    to .newsrc, and thus be regarded as unsubscribed.
	    5)	As 4, except that the information is stored in a format compati-
	    ble with the rn news reader (.rnlast).  This needs to be tested!

     new-style-read-prompt    (boolean, default true)
	    When set, the reading mode prompt line includes the group  name  and
	    the number of selected articles in the group.

     news-header headers (string, default not set)
	    The  headers  string specifies one or more extra header lines (sepa-
	    rated by semi-colons `;') which are added to the header of	articles
	    posted  from nn using the follow and post commands.  See mail-header
	    for an example.

     news-record file	 (string, default not set)
	    Save file for follow-ups and postings.  Same rules and format as the
	    mail-record variable.

     news-script file	 (string, default not set)
	    When set, nn will use the specified file instead of the standard aux
	    script when executing the follow and post commands.

     newsrc file (string, default "~/.newsrc") Specifies the
	    file used by nn to register which  groups  and  articles  have  been
	    read.   The  default setting corresponds to the .newsrc file used by
	    other news readers.  Notice that nn release 6.4 onwards  does  allow
	    individual	articles  to  be marked unread, and some articles marked
	    unread, and thus no longer messes up .newsrc for other news readers!
	    Also see nntp-server.

     nn-directory directory   (string, default "~/.nn")
	    It only makes sense to set this variable on the command  line,  e.g.
	    "nn-directory=$HOME/.nn2" since it is looked at before the init file
	    is read.  It must be set to a full pathname.  Usually set when using
	    multiple servers; see newsrc above and nntp-server below.

     nntp-cache-dir directory (string, default "~/.nn")
	    When  NNTP	is used, nn needs to store articles temporarily on disk.
	    This variable specifies which directory nn will use  to  hold  these
	    files.  The default value may be changed during configuration.  This
	    variable can only be set in the init file.

     nntp-cache-size size     (integer, default 10, maximum 10)
	    Specifies  the number of temporary files in the nntp cache.  The de-
	    fault and maximum values may be changed during configuration.

     nntp-debug     (boolean, default false)
	    When set, a trace of the nntp related traffic is  displayed  in  the
	    message line on the screen.

     nntp-server hostname or filename (string)
	    It	only  makes sense to set this variable on the command line, e.g.
	    "nntp-server=news.some.domain", since it is  looked  at  before  the
	    init file, If you use multiple servers, you probably want to set the
	    nn-directory  and  newsrc variables on the command line to alternate
	    names as well, since some of the data files are server dependent.

     old [max-articles]  (integer, default not set)
	    When old is set, nn will present (or scan) all (or the last  max-ar-
	    ticles)  unread as well as read articles.  While old is set, nn will
	    never mark any unread articles as read.

     old-packname   (boolean, default false)
	    When set, nn display names identically to  nn-6.6.5  (and  earlier).
	    Only set this if you have a large number of entries in your killfile
	    that no longer work due to the new behaviour.  Note that in the long
	    run,  this option will go away, so it's best to update your killfile
	    rather than set this.

     orig-to-include-mask N   (integer, default 3)
	    When replying to an article, nn will  include  some  of  the  header
	    lines  which  may be used to construct a proper mail address for the
	    poster of the original article.  These addresses are placed on Orig-
	    To: lines in the reply header and will automatically be removed  be-
	    fore the letter is sent.  This variable specifies which headers from
	    the  article  are  included; its value N is the sum of the following
	    values:
		 1: Reply-To:
		 2: From:
		 4: Path:

     overlap lines  (integer, default 2)
	    Specifies the number of overlapping lines from one page to the  next
	    when  paging through an article in reading mode.  The last line from
	    the previous page will be underlined if the terminal has that  capa-
	    bility.

     pager shell-command      (string, default $PAGER)
	    This  is  the pager used by the :admin command (and nnadmin) when it
	    executes certain commands, e.g. grepping in the Log file.

     patch-command shell-command   (string, default "patch -p0")
	    This is the command which is invoked by the :patch command.

     post-distribution words  (string, default see below)
	    This variable controls how the Distribution: header  is  constructed
	    when  posting an original article.	Its value is a list of words se-
	    lected from the following list:
	    [ ask ] [ default | distribution ]
	    This is interpreted in two steps:
	    - First the default distribution is determined.  If default is spec-
	    ified (or distribution is omitted), the value  of  default-distribu-
	    tion  is  used.  Otherwise, the specified distribution (any word) is
	    used as the default.
	    - Then if ask is specified, the user will be asked	to  confirm  the
	    default distribution or provide another distribution.
	    The  default value of post-distribution is ask default, i.e. use the
	    default-distribution with confirmation from the user.

     preview-continuation cond	   (integer, default 12)
	    This variable determines on what terms the following article  should
	    be	automatically shown when previewing an article, and the next-ar-
	    ticle command is used, or continue is used at the end of  the  arti-
	    cle.  The following values can be used:
	    0 - never show the next article (return to the menu).
	    1 - always show the next article (use 'q' to return to the menu).
	    2  - show the next article if it has the same subject as the current
	    article, else return to the menu.
	    The value should be the sum of two values: one for the action  after
	    using  continue on the last page of the article, and one for the ac-
	    tion performed when the next-article command is used  multiplied  by
	    10.

     preview-mark-read	      (boolean, default true)
	    When set, previewing an article will mark the article as read.

     previous-also-read  (boolean, default true)
	    When  set, going back to the previously read group with P {previous}
	    will include articles read in the current invocation of nn	even  if
	    there are still unread articles in the group.

     print-header-lines fields	   (string, default "FDGS")
	    Specifies  the list of header fields that are output when an article
	    is printed via the :print command and print-header-type is 1  (short
	    header).   The  fields specification is desctribed in the section on
	    Customized Article Headers below.

     print-header-type N (integer, default 1)
	    Specifies what kind of header is printed by the :print command, cor-
	    responding to the three save-* commands: 0 prints only  the  article
	    body (no header), 1 prints a short header, and 2 prints the full ar-
	    ticle header.

     printer shell-command    (string, default is system dep.)
	    This  is the default value for the print command.  It should include
	    an option which prevents the spooler from echoing a job-id or  simi-
	    lar  to the terminal to avoid problems with screen handling (e.g. lp
	    -s on System V).

     query-signature	      (boolean, default ...)
	    Will cause nn to require confirmation before appending  the  .signa-
	    ture  file	to  out-going  mail or news if the corresponding append-
	    sig-... variable is set.

     quick-count    (boolean, default true)
	    When set, calculating the total number of unread articles at  start-
	    up	is  done  by  simple subtracting the first unread article number
	    from the total number of articles in each group.  This is very fast,
	    and fairly accurate but it may be a bit too large.	If not set, each
	    line in .newsrc will be interpreted to count every	unread	article,
	    thus  giving  a very accurate number.  This variable is also used by
	    nncheck.

     quick-save     (boolean, default false)
	    When set, nn will not prompt for a file  name  when  an  article  is
	    saved  (unless  it	belongs  to a folder).	Instead it uses the save
	    file specified for the current group in the init file or the default
	    save file.

     re-layout N	 (integer, default 0)
	    Normally on the menu, nn will prefix the subject a	number	of  `>'s
	    corresponding  to  the number of references on the References: line.
	    The re-layout variable may be set to use a different prefix  on  the
	    subjects:
		 0:  One `>' per reference is shown (default).
		 1:  A single `>' is shown if the Subject contains Re:.
		 2:  The number of references is shown as `n>'
		 3:  A single Re: is shown.
		 4:  If any references use layout 0, else layout 1.

     re-layout-read N	 (integer, default -1)
	    When the header-lines variable is not set, or contains the "*" field
	    specifier,	a  line  similar  to  the  menu line will be used as the
	    header of the article in reading mode, including the  sender's  name
	    and the article's subject.	When this variable is negative, the sub-
	    ject on this header line will be prefixed according to the re-layout
	    variable.	Otherwise, it will define the format of the "Re:" prefix
	    to be used instead of the re-layout used on the menu.

     read-return-next-page    (boolean, default false)
	    When set, the Z {read-return} command will return to the  next  menu
	    page rather than the current menu page.

     record file    (string, no default)
	    Setting  this  pseudo variable will set both the mail-record and the
	    news-record variables to the specified pathname.

     repeat	    (boolean, default false)
	    When set, nn will not eliminate duplicated subject lines on menus (I
	    cannot imagine why anyone should want that, but....)

     repeat-group-query  (boolean, default false)
	    When set, invoking nn with the -g  option  will  always  repeat  the
	    query for a group to enter until you quit explicitly.  (Same as set-
	    ting the -r option permanently).

     report-cost	 (boolean, default true)
	    This  variable  is	ignored unless nn is running with accounting en-
	    abled (see nnacct).  When set, nn will report the cost of  the  cur-
	    rent session and the total on exit.

     response-check-pause pause    (integer, default 2)
	    Specifies  the number of seconds to wait after posting an article to
	    see whether the action *might* have failed.  Some  commands  run  in
	    the  background  and may thus not have completed during this period,
	    so even when nn says "Article posted", it may still fail  (in  which
	    case you are informed via mail).

     response-default-answer action	(string, default "send")
	    The  default action to be taken when hitting return to the "response
	    action" prompt  (abort, edit, send, view, write).  If it  is  unset,
	    no default action is defined.

     retain-seen-status  (boolean, default false)
	    Normally,  seen articles will just be unread the next time the group
	    is entered (unless they were marked read by auto-junk-seen).  If re-
	    tain-seen-status is set, the seen attribute  on  the  articles  will
	    survive  to the next time the group is entered.  (This is not recom-
	    mended because it may result in very large select files).

     retry-on-error times     (integer, default 0)
	    When set, nn will try the specified number of times to open an arti-
	    cle before reporting that the article does not exist any more.  This
	    may be necessary in some network environments.

     save-closed-mode mode    (integer, default 13)
	    When saving an article in selection mode (i.e. by selecting it  from
	    the  menu),  nn  will simply save the specified article if the arti-
	    cle's subject is open.  When the selected menu  entry  is  a  closed
	    subject,  the save-closed-mode variable determines how many articles
	    among the closed articles should be saved:
	    0: save root article (the one on the menu) only
	    1: save selected articles within subject
	    2: save unread (excl selected) articles within subject
	    3: save selected+unread articles within subject
	    4: save all articles within subject
	    If `10' is added to the above values, nn will not save the	selected
	    subject  immediately; instead it will ask which articles to save us-
	    ing the above value as the default answer.

     save-counter format (string, default "%d")
	    This is the printf-format  which  nn  uses	to  create  substitution
	    string  for  the trailing * in save file names.  You can set this to
	    more complex formats if you like, but be sure that it  will  produce
	    different  strings	for  different	numbers.   An alternative format
	    which seems to be popular is ".%02d" .

     save-counter-offset N    (integer, default 0)
	    Normally, file names created with the part.*  form	will  substitute
	    the * with successive numbers starting from one.  Setting this vari-
	    able will cause these numbers to start from N+1.

     save-header-lines fields (string, default "FDNS")
	    Specifies  the  list of header fields that are saved when an article
	    is saved via the O {save-short} command.  The  fields  specification
	    is desctribed in the section on Customized Article Headers below.

     save-report    (boolean, default true)
	    When  set,	a message reporting the number of lines written is shown
	    after saving an article.  Since messages are shown for  a  few  sec-
	    onds, this may slow down the saving of many articles (e.g. using the
	    S* command).

     scroll-clear-page	      (boolean, default true)
	    Determines whether nn clears the screen before showing each new page
	    of an article.

     scroll-last-lines N      (integer, default 0)
	    Normally,  nn  will show each new page of an article from the top of
	    the screen (with proper marking of the overlap).  When this variable
	    is set to a negative value, nn will scroll the text of the new pages
	    from the bottom of the screen instead.  If it is set to  a	positive
	    value,  nn	will  show  pages  from  the top as usual, but switch to
	    scrolling when there are less than the  specified  number  of  lines
	    left in the article.

     select-leave-next	      (boolean, default false)
	    When  set,	you  will  be  asked whether to select articles with the
	    leave-next attribute on entry to a group with left over articles.

     select-on-sender	      (boolean, default false)
	    Specifies whether the find (=) command  in	article  selection  mode
	    will match on the subject or the sender.

     shading-on code...  (control string, default not set)
	    Specifies the escape code to be sent to the terminal to cause "shad-
	    ing"  of  the  following  output to the screen.  This is used if the
	    mark-overlap-shading is set, and by the `+' attribute in the header-
	    lines variable.

     shading-off code... (control string, default not set)
	    Specifies the escape code to be sent to the terminal to turn off the
	    shading defined by shading-on.  Shading will typically  be	done  by
	    changing the foreground colour to change, e.g.
		 on term ti924-colour
		      set shading-on  ^[ [ 3 2 m
		      set shading-off ^[ [ 3 7 m
		      set mark-overlap-shading
		      unset mark-overlap
		 end

     shell program  (string, default $SHELL)
	    The shell program used to execute shell escapes.

     shell-restrictions  (boolean, default false)
	    When  set  (in  the init file), nn will not allow the user to invoke
	    the shell in any way, including saving on pipes.  It  also	prevents
	    the user from changing certain variables containing commands.

     show-purpose-mode N      (integer, default 1)
	    Normally,  nn  will show the purpose of a group the first time it is
	    read, provided a purpose is known.	Setting this variable, this  be-
	    haviour can be changed as follows:
		 0:  Never show the purpose.
		 1:  Show the purpose for new groups only.
		 2:  Show the purpose for all groups.
	    When NNTP is being used, a setting of 0 prevents the newsgroups pur-
	    pose  data from being read from the server; this can be helpful when
	    using a slow link, since the data can often be  hundreds  of  KBytes
	    long.

     sign-type	    (string, default pgp)
	    What  program  nn  will  use  to sign messages via the Sign command.
	    Only pgp and gpg are currently valid.

     silent	    (boolean, default false)
	    When set, nn won't print the logo or "No News" if there are  no  un-
	    read  articles.   Only useful to set in the init file or with the -Q
	    option.

     slow-mode	    (boolean, default false)
	    When set, nn will cut down on the screen output to give  better  re-
	    sponse  time  at low speed.  Normally, nn will use standout mode (if
	    possible) to mark selected articles on the menu, but when  slow-mode
	    is set, nn will just put an asterisk `*' next to the article identi-
	    fier on selected articles.	Also when slow-mode is set nn will avoid
	    redrawing  the  screen  in	the following cases:  After a goto-group
	    command an empty menu is shown (hit space to make  it  appear),  and
	    after  responding  to an article, only the prompt line is shown (use
	    ^L to redraw the screen).  To avoid redrawing the  screen  after  an
	    extended command, set the delay-redraw variable as well.

     slow-speed speed	 (integer, default 1200)
	    If	the  terminal is running at this baud rate or lower, the on slow
	    (see the section on init files) condition will be true, and  the  on
	    fast will be false (and vice-versa).

     sort      (boolean, default true)
	    When  set,	nn will sort articles according to the current sort-mode
	    on entry to a group.  Otherwise, articles will be presented in order
	    of arrival.  If not set on entry to a menu for  merged  groups,  the
	    articles from each group will be kept together on the menu.  If sort
	    is unset while merged groups are presented on the menu, the articles
	    will  be reordered by local article number (which may not keep arti-
	    cles from the same group together).

     sort-mode mode (integer, default 1)
	    The default sort algorithm used to sort the articles on entry  to  a
	    news group.  It is a numeric value corresponding to one of the sort-
	    ing methods described in connection with the :sort command:
		 0 - arrival (ordered by article number)
		 1 - subject (subjects ordered after age of first article)
		 2 - lexical (subjects in lexicographical order)
		 3 - age (articles ordered after posting date only)
		 4 - sender (articles ordered after sender's name)

     spell-checker shell-command   (string, default not set)
	    When  set,	responses  can	be checked for spelling mistakes via the
	    (i)spell action.  The command to perform the spelling is  given  the
	    file  containing the full article including header as its only argu-
	    ment.  If the spell checker can fix spelling mistakes, it must apply
	    the changes directly to this file.

     split	    (boolean, default true)
	    When set, digests will automatically and silently be split into sub-
	    articles which are then handled transparently  as  normal  articles.
	    Otherwise, digests are presented as one article (which you can split
	    on demand with the G command).

     stop lines     (integer, default not set)
	    When  stop is set, nn will only show the first lines lines of the of
	    each article before prompting you to continue.  This  is  useful  on
	    slow terminals and modem lines to be able to see the first few lines
	    of longer articles (and skipping the rest with the n command).

     subject-match-limit length    (integer, default 256)
	    Subjects  will be considered identical if their first length charac-
	    ters match.  Setting this uncritically to a low value may cause  un-
	    expected results!

     subject-match-offset offset   (integer, default 0)
	    When set to a positive number, that many characters at the beginning
	    of	the subject will be ignored when comparing subjects for ordering
	    and equality purposes.

     subject-match-parts (boolean, default false)
	    When set, two subjects will be considered equal if they are  identi-
	    cal  up  to the first (differing) digit.  Together with the subject-
	    match-offset variable, this can be used in source groups  where  the
	    subject often has a format like:
		 vXXXXXX: Name of the package (Part 01/04)
	    Setting  subject-match-offset  to  8 and subject-match-parts to true
	    will make nn consider all four parts of the package having the  same
	    subject (and thus be selectable with `*').
	    Notice  that  changing the subject-match-... variables manually will
	    not have an immediate effect.  To  reorder	the  menu,  an	explicit
	    :sort  command  must  be  performed.  These variables are mainly in-
	    tended to be set using the :local command in  on  entry  macros  for
	    source and binary groups (entry macros are evaluated before the menu
	    is collected and sorted).

     subject-match-minimum characters	(integer, default 4)
	    When set to a positive number, that many characters at the beginning
	    of	the  subject  must  match  before the subject-match-parts option
	    comes into affect.	This is important,  because  the  part	matching
	    causes the rest of the line to be ignored after the first digit pair
	    is	discovered.  This begins after any subject-match-offset has been
	    applied.

     suggest-default-save     (boolean, default true)
	    When set, nn will present the default-save-file when prompting for a
	    save file name in a group without a specific save file,  or  folder-
	    save-file  when saving from a folder.  When not set, no file name is
	    presented, and to use the default save file,  a  single  +	must  be
	    specified.

     tidy-newsrc	 (boolean, default false)
	    When set, nn will automatically remove lines from .newsrc which rep-
	    resent groups not found in the active file or unsubscribed groups if
	    keep-unsubscribed is not set.

     time      (boolean, default true)
	    When set, nn will show the current time in the prompt line.  This is
	    useful on systems without a sysline (1) utility.

     trace-folder-packing     (boolean, default true)
	    When  set,	a  trace of the retained and deleted messages is printed
	    when a folder is rewritten.

     trusted-escape-codes codes    (string, default none)
	    When set to a list of one or more characters, nn will trust and out-
	    put escape characters in an article if it is followed by one of  the
	    characters	in  the  list.	 For example, to switch to or from kanji
	    mode, control codes like "esc $" and "esc ( J" may be present in the
	    text.  To allow these codes, use the following command:
		 set trusted-escape-codes ($
	    You can also set it to all to pass all espace codes through  to  the
	    screen.  Notice that nn thinks all characters (including esc) output
	    to the screen as occupy one column.

     unshar-command shell-command  (string, default "/bin/sh")
	    This is the command which is invoked by the unshar command.

     unshar-header-file file  (string, default "Unshar.Headers")
	    The  name  of the file in which the header and initial text of arti-
	    cles unpacked with the :unshar command is saved.   Unless  the  file
	    name  starts with a `/', the file will be created in the same direc-
	    tory as the unpacked files.  The information is not  saved	if  this
	    variable  is  not set.  Setting it to "Unshar.Result" will cause the
	    headers and the results from the unpacking process to be merged in a
	    meaningful way (unless mmdf-format is set).

     unsubscribe-mark-read    (boolean, default true)
	    When set, unsubscribing to a group will automatically mark all  cur-
	    rent  articles read; this is recommended to keep the size of .newsrc
	    down.  Otherwise, unread articles in the unsubscribe groups are kept
	    in .newsrc.  If keep-unsubscribed is false, this variable has no ef-
	    fect.

     update-frequency	      (integer, default 1)
	    Specifies how many changes need to be done to the .newsrc or  select
	    files  before  they  are  written back to disk.  The default setting
	    causes .newsrc to be updated every time a group has been read.

     use-editor-line	      (boolean, default true)
	    Most editors accept arguments of the form:
		 editor [-arguments] +n filename
	    where editor is the name of the editor, and n is the line number  to
	    put the cursor upon entering the file.  If use-editor-line is false,
	    it will not add the "+n" to the arguments.

     use-path-in-from	      (boolean, default false)
	    When  mail-format  is set, saved articles will be preceded by a spe-
	    cially formatted "From " line:
		 From origin date
	    Normally, the origin will be the name of the news  group  where  the
	    article  appeared,	but  if use-path-in-from is set, the contents of
	    the "Path:" header will be used as the origin.

     use-selections	 (boolean, default true)
	    When set, nn uses the selections and other article attributes  saved
	    last time nn was used.  If not set, nn ignores the select file.

     visible-bell   (boolean, default true)
	    When  set, nn will flash the screen instead of "ringing the bell" if
	    the visible bell (flash) capability is defined in  the  termcap/ter-
	    minfo database.

     window size    (integer, default not set)
	    When set, nn will reserve the last size lines of the menu screen for
	    a  preview	window.  If not set, nn will clear the screen to preview
	    an article if there are less than min-window lines at the bottom  of
	    the  screen.   As  a  side effect, it can also be used to reduce the
	    size of the menus, which may be useful on slow terminals.

     word-key key   (key, default ^W)
	    The key which erases the last input component or  word  when  nn  is
	    prompting for a string, e.g. the last name in a path name.

     wrap-header-margin size  (integer, default 6)
	    When  set  (non-negative), the customized header fields specified in
	    header-lines will be split across several lines if they don't fit on
	    one line.  When size is greater than zero, lines will  be  split  at
	    the  first space occurring in the last size columns of the line.  If
	    not set (or negative), long header lines will be truncated	if  they
	    don't fit on a single line.

CUSTOMIZED ARTICLE HEADER PRESENTATION
     Normally, nn will just print a (high-lighted) single line header containing
     the author, subject, and date (optional) of the article when it is read.

     By  setting the header-lines variable as described below, it is possible to
     get a more informative multi line header with  optional  high-lighting  and
     underlining.

     The  header-lines variable is set to a list of header line identifiers, and
     the customized headers will then contain exactly these header lines in  the
     specified order.

     The same specifications are also used by the :print and save-short commands
     via the print-header-lines and save-header-lines variables.

     The  following  header line identifiers are recognized in the header-lines,
     print-header-lines, and save-header-lines variables:

	     A	  Approved:
	     a	  Spool-File:(path of spool file containing the article)
	     B	  Distribution:
	     C	  Control:
	     D	  Date:
	     d	  Date-Received:
	     F	  From:
	     f	  Sender:
	     G	  Newsgroup:(current group)
	     g	  Newsgroup:(current group if cross-posted or merged)
	     I	  Message-Id:
	     K	  Keywords:
	     L	  Lines:
	     N	  Newsgroups:
	     n	  Newsgroups:	(but only if cross posted)
	     O	  Organization:
	     P	  Path:
	     R	  Reply-To:
	     S	  Subject:
	     v	  Save-File:(the default save file for this article)
	     W	  Followup-To:
	     X	  References:
	     x	  Back-References:
	     Y	  Summary:

     The 'G' and 'g' fields will include the  local  article  number  if  it  is
     known, e.g.
	  Newsgroup: news.software.nn/754

     The  following  special symbols are recognized in the header-lines variable
     (and ignored otherwise):

     Preceding the identifier with an equal sign "=" or an underscore  "_"  will
     cause the header field contents to be high-lighted or underlined.

     A	plus  sign  "+" will use the shading attribute defined by shading-on and
     shading-off to high-light the field contents.  If no shading  attribute  is
     defined it will underline the field instead.

     Including	an  asterisk  "*" in the list will produce the standard one line
     header at that point.

     Example:  The following setting of the header-lines variable will show  the
     author (underlined), organization, posting date, and subject (high-lighted)
     when articles are read:
	  set header-lines _FOD=S

COMMAND LINE OPTIONS
     Some  of the command line options have already been described, but below we
     provide a complete list of the effect of each option by showing the equiva-
     lent set, unset, or toggle command.

     Besides the options described below, you can set any of nn's variables  di-
     rectly on the command line via an argument of the following format:
	  variable=value
     To set or unset a boolean variable, the value can be specified as on or off
     (t and f will also work).

     Notice  that  the init files are read before the options are parsed (unless
     you use the -I option).   Therefore,  the	options  which	are  related  to
     boolean  variables  set  in  the init file will toggle the value set there,
     rather than the default value.  Consequently, the meaning	of  the  options
     are also user-defined.

     The  explanations	below describe the effect related to the default setting
     of the variables, with the `reverse' effect in square brackets.

     -aN  {set limit N}
	    Limit the maximum number of articles presented in each group  to  N.
	    This  is  useful to get up-to-date quickly if you have not read news
	    for a longer period.

     -a0    Mark all unread articles as read.  See the full explanation  at  the
	    beginning of this manual.

     -B   {toggle backup}
	    Do not [do] backup the rc file.

     -d   {toggle split}
	    Do not [do] split digests into separate articles.

     -f   {toggle fsort}
	    Do not [do] sort folders according to the subject (present the arti-
	    cles in a folder in the sequence in which they were saved).

     -g     Prompt for the name of a news group or folder to be entered

     -i   {toggle case-fold-search}
	    Normally  searches	with -n and -s are case independent.  Using this
	    option, the case becomes significant.

     -I     Do not read the init file.	This must be  the  first  option!!   The
	    global setup file is still read.

     -Ifile-list
	    Specifies  an  alternate  list of init files to be loaded instead of
	    the standard global and private init files.  The list  is  a  comma-
	    separated  list  of  file names.  Names which does not contain a `/'
	    are looked for in the ~/.nn directory.  An empty element in the list
	    is interpreted as the global init file.  The list of init files must
	    not be separated from the -I option by blanks, and it  must  be  the
	    first  option.  Example:  The default behaviour corresponds to using
	    -I,init (first the global file,  then  the	file  ~/.nn/init).   The
	    global setup file is still read as the first init file independently
	    of the -I option used.

     -k   {toggle kill}
	    Do not [do] perform automatic kill and selection of articles.

     -lN  {set stop N}
	    Stop after printing the first N lines of each article.  This is use-
	    ful on slow terminals.

     -L[f]     {set layout f}
	    Select  alternative  menu  layout f (0 to 4).  If f is omitted, menu
	    layout 3 is selected.

     -m   {no corresponding variable}
	    Merge all articles into one `meta group' instead of showing them one
	    group at a time.  When -m is used, no articles  will  be  marked  as
	    read.

     -nWORD
	    Collect  only articles which contain the string WORD in the sender's
	    name (case is ignored).  If WORD starts with a slash `/',  the  rest
	    of	the  argument is used as a regular expression instead of a fixed
	    string.

     -N   {no corresponding variable}
	    Disable updating of the rc file.  This includes not  recording  that
	    groups  have been read or unsubscribed to (although nn will think so
	    until you quit).

     -q   {toggle sort}
	    Do not [do] sort the articles (q  means  quick,  but  it  isn't  any
	    quicker in practice!)

     -Q   {toggle silent}
	    Quiet mode - don't [do] print the logo or "No News" messages.

     -r   {toggle repeat-group-query}
	    Make -g repeat query for a group to enter.

     -sWORD
	    Collect only articles which contain the string WORD in their subject
	    (case is ignored).	If WORD starts with a slash `/', the rest of the
	    argument is used as a regular expression instead of a fixed string.

     -S   {toggle repeat}
	    Do not [do] eliminate duplicated subject lines on menus.

     -T   {toggle time}
	    Do not [do] show the current time in the prompt line.

     -w[N]     {set window N}
	    Reserve  N	lines  of the menu screen for a preview window.  If N is
	    omitted, the preview window is set to 5 lines.

     -W   {toggle confirm-messages}
	    [Don't] Wait for confirmation on all messages.

     -x[N]     {set old N}
	    Present (or scan) all (or the last N) unread as well as  read  arti-
	    cles.  This will never mark unread articles as read.

     -X   {no corresponding variable}
	    Read/scan  unsubscribed groups also.  Most useful when looking for a
	    specific subject in all groups, e.g.
	       nn -mxX -sSubject all

MACRO DEFINITIONS
     Practically any combination of commands and key strokes can be defined as a
     macro which can be bound to a single key in menu and/or reading mode.

     The macro definition must specify a sequence of commands and key strokes as
     if they were typed directly from the keyboard.  For example, a string spec-
     ifying a file name must follow a save command.  This manual does not give a
     complete specification of all the input required by the  various  commands;
     it is recommended to execute the desired command sequence from the keyboard
     prior to defining the macro to get the exact requirements of each command.

     Although  it is possible to define temporary macros interactively using the
     :define command, macro definitions are normally placed in	the  init  file.
     Macros are numbered from 0 to 100, i.e. it is possible to define a total of
     101 different macros (implicit macros defined with the map command uses in-
     ternal numbers from 101 to 200).

     To  define  macro	number	M,  the following construction is used (the line
     breaks are mandatory):
	  define M
	       body
	  end

     The body consists of a sequence of tokens separated by white space  (blanks
     or  newlines).   However, certain tokens continue to the end of the current
     line.

     The following tokens may occur in the macro body:

     Comments
	    Empty lines and text following a  #  character  (preceded  by  white
	    space) is ignored.

     Command Names
	    Any  command  name listed in the key mapping section can be included
	    in a macro causing that command to be invoked when the macro is exe-
	    cuted.

     Extended Commands
	    All the extended commands which can be executed through the  command
	    command  (normally	bound  to  the	: key) can also be executed in a
	    macro.  An extended command starts with a colon (:) and continues to
	    the end of the current line.  Example:
		 :show groups total

     Key Strokes
	    A key stroke (which is normally mapped into a command  depending  on
	    the  current  mode)  is  specified	as a key name enclosed in single
	    quotes.  Examples (A-key, left arrow key, RETURN key):
		 'A'  'left'  '^M'

     Shell Commands
	    External commands can be invoked  as  part	of  a  macro  execution.
	    There are two forms of shell command invocations available depending
	    on whether a command may produce output or require user input, or it
	    is	guaranteed  to complete without input or output to the terminal.
	    The difference is that in the latter case, nn does not  prepare  the
	    terminal to be used by another program.  When the command completes,
	    the  screen  is not redrawn automatically; you should use the redraw
	    command to do that.  The tho forms are:
		 :!echo this command uses the terminal
		 :!!echo this command does not > /tmp/file

     Strings
	    Input to commands prompting for a string, e.g. a file name,  can  be
	    specified in a macro as a double quoted string.  Example (save with-
	    out prompting for a file name):
		 save-short "+$G"

     Conditionals
	    Conditionals  may occur anywhere in a macro; a conditional is evalu-
	    ated when the macro is executed, and if the condition is  false  the
	    rest of the current line is ignored.  The following conditionals are
	    available:
		 ?menu	   True in menu mode
		 ?show	   True in reading mode
		 ?folder   True when looking at a folder
		 ?group    True when looking at a news group
		 ?yes Query user, true if answer is yes
		 ?no  Query user, true if answer is no
	    Example (stop macro execution if user rejects to continue):
		 prompt "continue? " ?no break
	    In	addition  to these conditionals, it is possible to test the cur-
	    rent value of boolean and  integer	variables  using  the  following
	    form:
		 ?variable=value
	    This  conditional  will  be  true  (1) if the variable is an integer
	    variable whose current value is the one specified,	or  (2)  if  the
	    variable is a boolean variable which is either on or off.  Examples:
		 ?layout=3 :set layout 1
		 ?monitor=on  break
		 ?sort=off :sort age

     break  Terminate  macro execution completely.  This includes nested macros.
	    Example (stop if looking at a folder):
		 ?folder break

     return
	    Terminate execution of current  macro.   If  the  current  macro  is
	    called from another macro, execution of that macro continues immedi-
	    ately.

     input  Query  the	user  for  a  key stroke or a string, for example a file
	    name.  Example (prompt the user for a file name in the usual way):
		 save-short input

     yes    Confirm unconditionally if a command requires confirmation.   It  is
	    ignored if the command does not require confirmation.  Example (con-
	    firm creation of new files):
		 save-short "+$G" yes

     no     Terminate execution of current macro if a command requires confirma-
	    tion;  otherwise ignore it.  If neither yes nor no is specified when
	    a command requires confirmation, the user must answer  the	question
	    as	usual - if the user confirms the action execution continues nor-
	    mally; otherwise the execution of the current macro  is  terminated.
	    Example (do not create new files):
		 save-short "+$L/misc" no

     prompt string
	    Print  the string in the prompt line (highlighted).  The string must
	    be enclosed in double quotes.  Example:
		 prompt "Enter recipient name"
	    When the macro terminates, the original prompt shown on entry to the
	    macro will automatically be redrawn.  If this is not desirable (e.g.
	    if the macro goes from selection to reading mode), the redrawing  of
	    the  prompt  can be disabled by using a prompt command with an empty
	    string ("").  Example:
		 prompt "Enter reading mode?" # old prompt is saved
		 ?no return # and old prompt is restored
		 read-skip	 # changes the prompt
		 prompt "" # so forget old prompt

     echo string
	    Display the string in the prompt line for a short period.  Example:
		 ?show echo "Cannot be used in reading mode" break

     puts string-to-end-of-line
	    The rest of the line is output directly to the terminal without  in-
	    terpretation.

     macro M
	    Invoke  macro  number  M.	The  maximum macro nesting level is five
	    (also catches macro loops).

     I use the following macro to quickly save all the selected files in a  file
     whose name is entered as usual.  It also works in reading mode (saving just
     the current article).
	  define 1
	       :unset save-report
	       save-short input yes
	       ?menu '+'
	       :set save-report
	  end

KEY MAPPINGS
     The  descriptions of the keys and commands provided in this manual reflects
     the default key mappings in nn.  However, you can easily change these  map-
     pings to match your personal demands, and it is also possible to remap keys
     depending on the terminal in use.	Permanent remapping of keys must be done
     through  the  init  file,	while temporary changes (for the duration of the
     current invocation of nn) can be made with the :map command.

     The binding and mapping of keys are controlled by four tables:

     The multikey definition table
	    This table is used for mapping  multicharacter  key  sequences  into
	    single  characters.   By default the table contains the mappings for
	    the four cursor keys, and there is room for 10  user-defined  multi-
	    keys.   The fourteen multikeys are named: up, down, right, left (the
	    four arrow keys), and #0 through #9 for the user-defined keys.
	    Multikey #i (where i is a digit or an arrow key name) is defined us-
	    ing the following command:
		 map #i key-sequence
	    where the sequence is a list of 7-bit character  names  (see  below)
	    separated  by  spaces.   For  example, if the HOME key sends the se-
	    quence ESC [ H, you can define multikey #0 to be the home key  using
	    the command:
		 map #0 ^[ [ H

     The input key mapping table
	    All  characters  that  are	read  from  the  keyboard will be mapped
	    through the input mapping table.   Consequently,  you  can	globally
	    remap  one	key to produce any other key value.  By default all keys
	    are mapped into themselves.
	    An entry in the input key mapping table to map input-key  into  new-
	    key is made with the command
		 map key input-key new-key
	    For  example, to make your ESC key function as interrupt you can use
	    the command
		 map key ^[ ^G

     The selection mode key binding table
	    This table defines for each key which command should be invoked when
	    that key is pressed in selection mode, i.e. when the article menu is
	    shown.  The command to bind a key to a command in selection mode is:
		 map menu key command
	    For example, to have the HOME key defined as multikey #0 above bound
	    to the select command, the following command is used:
		 map menu #0 select
	    To remap a key to select a specific article on the menu  (which  the
	    `a'  through  `z' keys do by default), the command must be specified
	    as `article N' where N is the entry number on the menu counted  from
	    zero  (i.e.  a=0, b=1, ..., z=25, 0=26, ..., 9=35).  For example, to
	    map `J' to select article `j', the following command is used:
		 map menu J article 9

     The reading mode key binding table
	    This table defines for each key which command should be invoked when
	    that key is pressed in reading mode, i.e. when the article	text  is
	    shown.  The command to bind a key to a command in reading mode is:
		 map show key command

     In  addition  to  the direct mappings described above, the following varia-
     tions of the map command are available:

     User defined keymaps
	    Additional keymaps can be defined using the command
		 make map newmap
	    This will create a new keymap which can initialized using normal map
	    commands, e.g.
		 map newmap key command
	    To activate a user-defined keymap, it must be bound to a prefix key:
		 map base-map prefix-key prefix newmap
	    When used, the prefix key itself does not activate	a  command,  but
	    instead  it  require  another key to be entered and then execute the
	    command bound to that key in the keymap which is bound to the prefix
	    key.
	      For example, to let the key sequence "^X i" execute  macro  number
	    10 in both modes, the following commands can be used:
		 make map ctl-x
		 map ctl-x i macro 10
		 map both ^X prefix ctl-x

     Mapping keys in both modes
	    Using  the	pseudo-keymap  `both',	it is possible to map a key to a
	    command in both selection and reading mode at once.  For example, to
	    map the home key to macro number 5 in both modes, the following com-
	    mand can be used:
		 map both #0 macro 5

     Aliasing
	    A key can also be mapped directly to the command currently bound  to
	    another  key.   Later remapping of the other key will not change the
	    mapping of the `aliased' key.  This is done using the following com-
	    mand:
		 map keymap new-key as old-key

     Binding macros to keys
	    A previously defined macro can be bound to a key using the command:
		 map keymap key macro macro-number

     Implicit macro definitions
	    An implicit macro can also be defined directly  in	connection  with
	    the map command:
		 map keymap key (
		 body...
		 )

     Keys and character names are specified using the following notation:

     C	    A single printable character represents the key or character itself.

     ^C     This notation represents a control key or character.  DEL is written
	    as ^?

     125, 0175, 0x7D
	    Characters and keys can be specified by their ordinal value in deci-
	    mal, octal, and hexadecimal notation.

     up, down, right, left
	    These names represent the cursor keys.

     #0  through  #9
	    These symbols represent the ten user-defined multikeys.

     If the variable data-bits is 7, key maps can specify binding of all keys in
     the  range  0x00  to 0x7F, and the 8th bit will be stripped in all keyboard
     input.  If the variable data-bits is 8, the 8th bit is not cleared, and key
     maps are extended to allow binding of keys in the range 0xA0 to 0xFE  (cor-
     responding  to  the  national  characters defined by the ISO 8859 character
     sets).  Binding commands to these keys can be done either	by  using  their
     numeric  value,  or directly specifying the 8 bit character in the map com-
     mand, e.g.
	  map menu 0xC8 macro 72
	  map key e %

     To show the current contents of the four tables, the following versions  of
     the :map command are available:

     :map   Show the current mode's key bindings.

     :map menu
	    Show the selection mode key bindings.

     :map show
	    Show the reading mode key bindings.

     :map #
	    Show the multikey definition table.

     :map key
	    Show the input key mapping table.

STANDARD KEY BINDINGS
     Below  is	a  list of all the commands that can be bound to keys, either in
     selection mode, in reading mode, or both.	For  each  command  the  default
     command  key  bindings in both modes are shown.  If the key is not bound in
     one of the modes, but it can be bound, the corresponding part will just  be
     empty.   If the command cannot be bound in one of the modes, that mode will
     contain the word nix.

	     Function		  Selection mode   Reading mode
	     advance-article	  nix		   a
	     advance-group	  A		   A
	     article N		  a-z0-9	   nix
	     back-article	  nix		   b
	     back-group 	  B		   B
	     cancel		  C		   C
	     command		  :		   :
	     compress		  nix		   c
	     continue		  space 	   space
	     continue-no-mark	  return	   nix
	     decode
	     find		  =		   /
	     find-next		  nix		   .
	     follow		  F		   fF
	     full-digest	  nix		   H
	     goto-group 	  G		   G
	     goto-menu		  nix		   = Z
	     help		  ?		   ?
	     junk-articles	  J		   nix
	     kill-select	  K		   K
	     layout		  "		   nix
	     leave-article	  nix		   l
	     leave-next 	  L		   L
	     line+1		  ,  down	   return
	     line-1		  /		   nix
	     line=@		  nix		   g
	     macro M
	     mail		  M		   m M
	     message		  ^P		   ^P
	     next-article	  nix		   n
	     next-group 	  N		   N
	     next-subject	  nix		   k
	     nil
	     overview		  Y		   Y
	     page+1		  >		   nix
	     page+1/2		  nix		   d
	     page-1		  <		   delete  backspace
	     page-1/2		  nix		   u
	     page=0		  nix		   h
	     page=1		  ^		   ^
	     page=$		  $		   $
	     patch
	     post
	     preview		  %		   %
	     previous		  P		   p
	     print				   P
	     quit		  Q		   Q
	     read-return	  Z		   nix
	     read-skip		  X		   X
	     redraw		  ^L ^R 	   ^L ^R
	     reply		  R		   r R
	     rot13		  nix		   D
	     save-full		  S		   s S
	     save-short 	  O		   o O
	     save-header	  E		   e E
	     save-body		  W		   w W
	     select		  .		   nix
	     select-auto	  +		   nix
	     select-invert	  @		   nix
	     select-range	  -		   nix
	     select-subject	  *		   *
	     shell		  !		   !
	     skip-lines 	  nix		   tab
	     unselect-all	  ~		   nix
	     unshar
	     unsub		  U		   U
	     version		  V		   V

     See the descriptions of the default bindings for a description of the  com-
     mands.  The pseudo command nil is used to unbind a key.

THE INIT FILES
     The  init	files  are used to customize nn's behaviour to local conventions
     and restrictions and to satisfy each user's personal taste.
     Normally, nn reads upto three init files on start-up  if  they  exist  (all
     init files are optional):

     $LIB/setup
	    A  system-wide  file located in the library directory.  This file is
	    always loaded before any other init file (even when the -I option is
	    specified).  It cannot contain a group presentation sequence.

     $LIB/init
	    Another system-wide (global) init file located in the library direc-
	    tory.  This file may be ignored via the -I option.

     ~/.nn/init
	    The private init file located in the user's .nn  directory.   It  is
	    read  after the global init file to allow the user to change the de-
	    fault setup.

     The init file is parsed one line at a time.  If a line ends  with	a  back-
     slash  `\', the backslash is ignored, and the following line is appended to
     the current line.

     The init file may contain the following types of commands (and data):

     Comments
	    Empty lines and lines with a #  character  as  the	first  non-blank
	    character  are  ignored.  Except where # has another meaning defined
	    by the command syntax (e.g. multi-keys are named #n), trailing  com-
	    ments on input lines are ignored.

     Variable settings
	    You can set (or unset) all the variables described earlier to change
	    nn's  behaviour permanently.  The set and unset commands you can use
	    in the init file have exactly the same format as the :set and :unset
	    commands described earlier (except that the : prefix is omitted.)
	    Variables can also be locked via the lock command; this is typically
	    done in the setup file to enforce local policies.

     Key mappings
	    You can use all the versions of the map command in the init file.

     Macro Definitions
	    You can define sequences of commands and key strokes using	the  de-
	    fine...end construction, which can then be bound to single keys with
	    the map command.

     Load terminal specific files
	    You can load a terminal specific file using the
		 load file
	    The  character  @  in the file will be replaced by the terminal type
	    defined in the TERM environment variable.  nn silently  ignores  the
	    load command if the file does not exist (so you don't have to have a
	    specific  init file for terminals which does not require remapping).
	    If the file is not specified by an absolute pathname, it must reside
	    in your ~/.nn directory.  Examples:
		 # load local customizations
		 load /usr/lib/nninit
		 # load personal terminal specific customizations
		 load init.@

     Switch to loading a different init file
	    You can skip the rest of the current init file and start  loading  a
	    different init file with the following command:
		 chain file
	    If	this  occur in the private or global init file, the chained init
	    file may contain a sequence part which will replace the  private  or
	    global presentation sequence respectively.

     Stop loading current init file
	    You  can  skip  the rest of the current init file with the following
	    command:
		 stop

     Give error messages and/or terminate
	    If an error is detected in the init file, the following commands can
	    be used to print an error message and/or terminate execution:
	    error fatal error message...
		 Print the message and terminate execution.
	    echo warning message...
		 Print the message and continue.
	    exit [ status ]
		 Terminate nn with the specified exit status or 0 if omitted.

     Change working directory of nn
	    You can use the cd command to change the working directory	whenever
	    you enter nn.  Example:
		 # Use folder directory as working directory inside nn
		 cd ~/News

     Command groups
	    The  init file can contain groups of commands which are executed un-
	    der special conditions.  The command groups  are  described  in  the
	    section on command groups below.

     One or more save-files sections
	    A  save-files  section  is used to assign default save files to spe-
	    cific groups:
		 save-files
		   group-name (pattern) file-name
		   ...
		 end
	    The group name (patterns) and save file names are specified  in  the
	    same way as in the presentation sequence (see below).  Example:
		 save-files
		   news*  +news/$L
		   comp.sources*  /u/src/$L/
		 end

     The news group presentation sequence
	    The last part of the init file may specify the sequence in which you
	    want  the  news  groups  to be presented.  This part starts with the
	    command sequence and continues to the end of the init file.

     Both init files may contain a presentation sequence.   In	this  case,  the
     global sequence is appended to the private sequence.

COMMAND GROUPS
     Command  groups  may only occur in the init file, and they provide a way to
     have series of commands executed at certain points during news reading.

     In release 6.4 onwards, these possibilities are still  rather  rudimentary,
     and a mixture of normal init file syntax and macro syntax is used depending
     on  whether the command group is only executed on start-up or several times
     during the nn session.

     A command group begins with the word on and ends with the	word  end.   The
     following	command  groups are conditionally executed during the parsing of
     the init file if the specified condition is true.	They may  also	have  an
     optional else part which is executed if the condition is false:
	  on condition
	       commands
	  [ else
	       commands ]
	  end

     The following conditional command groups may be used in the init file to be
     executed at start-up:

     on [ test ]
	    The  commands  (init  file syntax) in the group are executed only if
	    the specified test is true.  A shell is spawned to execute the  com-
	    mand "[ test ]", so all the options of the test(1) command is avail-
	    able.  For example, to unset the flow-control variable if the tty is
	    a pseudo-tty, the following conditional can be used:
		 on [ -n "`tty | grep ttyp`" ]
		      unset flow-control
		 end

     on !shell command
	    The  command group is executed if the given shell command exits with
	    0 status (success).  Care should be taken that the command does  not
	    produce  any  output,  e.g.  by redirecting its output to /dev/null.
	    For example, to prevent people from reading news if load is above  a
	    specific  level,  the  following  conditional might be placed in the
	    global setup file.
		 on !load-above 5
		      error load is too high, try again later.
		 end

     on `shell command` string...
	    The command group is executed if the first output line from  execut-
	    ing the specified shell command is listed among the specified string
	    values.   The shell command can be omitted on subsequent occurrences
	    of this conditional, in which case the output from	the  last  shell
	    command is used.  For example, the following conditional can be used
	    to	switch	to  an	init  file which has a limited sequence for news
	    reading during working hours, evenings, and nights:
		 on `date +%H` 9 10 11 12 13 14 15 16
		      chain init.work
		 end
		 on `` 17 18 19 20 21
		      chain init.evening
		 else
		      chain init.night
		 end

     on `` string...
	    This is equivalent to the previous form except that instead of  exe-
	    cuting a shell command, the output from the previous

     on $variable [ value ]
	    If	no value strings are specified, the command group is executed if
	    the given variable is defined in the  environment.	 Otherwise,  the
	    command group is executed only if the value of the variable occur in
	    the  value	list.	For  example, if you want nn to look for mail in
	    whatever $MAIL is set to - if it is set - you can use the  following
	    code:
		 on $MAIL
		      set mail $(MAIL)
		 end

     on slow
	    The  commands  (init  file syntax) in the group are executed only if
	    the current terminal output speed is less than or equal to the  baud
	    rate  set  in the slow-speed variable.  This can be used to optimize
	    the user-interface for slow terminals by setting suitable variables:
		 on slow
		      set confirm-entry
		      set slow-mode
		      set delay-redraw
		      unset visible-bell
		      set compress
		      unset header-lines
		      set stop 5
		      set window 10
		 end

     on fast
	    Same as on slow except that the commands are only executed when  the
	    terminal is running at a speed above the slow-speed value.

     on term term-type...
	    The commands are executed if one of the term-type names is identical
	    to value of the TERM environment variable.

     on host host-name...
	    The  commands  are	executed  if  the local host's name occur in the
	    host-name list.

     on program program-name...
	    The commands are executed if the current program (nn, nncheck,  etc)
	    in the program-name list.

     The  following  on  command  groups are really macros which may be executed
     during nn's normal processing, and as such they cannot have an else part.

     on entry [ group list ]
	    These commands (macro format!) are executed every time nn  enters  a
	    news  group.  If a group list is not specified, the commands are as-
	    sociated with all groups which don't have its own entry macro speci-
	    fied in the group sequence.  Otherwise, the entry macro will be  as-
	    sociated  with  the groups in the list.  The group list is specified
	    using the meta-notations described in the presentation sequence sec-
	    tion.
	    All `:' commands at the beginning of the command group are	executed
	    before  nn	collects the articles in the group, so it is possible to
	    set or unset variables like cross-post and auto-read-mode-limit  be-
	    fore any articles are collected and the menu is (not) shown.
	      The  non-`:'  commands, and `:' commands that follows a command of
	    another type will be executed immediately after the first menu  page
	    is	presented.   The  execution of a `:' command can be postponed by
	    using a double `::' as the command prefix.
		 on entry comp.sources* alt.sources
		      :set cross-post on   # set before collection
		      :local auto-read-mode-limit -1   # set before showing menu
		      ::unset cross-post   # set after collection
		 end

     on start-up
	    These `:' commands (macro format!) are executed on start-up just be-
	    fore nn enters the first news group.   However,  postponed	commands
	    (i.e.  non-`:'  commands) will not be executed until the first group
	    is shown (it works like an entry macro).

GROUP PRESENTATION SEQUENCE
     News groups are normally presented in the sequence defined in  the  system-
     wide init file in nn's library directory.

     You  can personalize the presentation sequence by specifying an alternative
     sequence in the private init file.  The sequence in the private  init  file
     is used before the global presentation sequence, and need only describe the
     deviations from the default presentation sequence.

     The presentation sequence must start with the word
	  sequence
     followed by a list of the news group names in the order you want them to be
     presented.  The group names must be separated by white space.  The sequence
     list  must  be the last part of the init file (the parsing of commands from
     the init file stops when the word sequence is encountered).

     You may use a full group name like "comp.unix.questions", or just the  name
     of  a  main  group  or  subgroup,	e.g. "comp" or "comp.unix".  However, if
     "comp" precedes "comp.unix.questions" in the list, this  subgroup	will  be
     placed  in  the normal alphabetic sequence during the collection of all the
     "comp" groups.

     Groups which are not explicitly mentioned in any of the sequence files will
     be placed after the mentioned groups, unless `!!' is used and  it	has  not
     been disabled (as described below).

     Each  group  name may be followed by a file or folder name (must start with
     either of `/' `~' or `+') which will specify the default save file for that
     group (and its subgroups).  A single `+' following the group name is an ab-
     breviation for the last save file name used.  For	example,  the  following
     two sequences are equivalent:
	  group1 +file group2 +file group3 +file
	  group1 +file group2 + group3 +

     When an article is saved, the default save name will be used as the initial
     contents  of  the	file name prompt for further editing.  It therefore does
     not need to be be a complete file name  (unless  you  use	the  quick  save
     mode).

     Each group name may also be associated with a so-called entry action.  This
     is  basically  an	(unnamed)  macro  which is invoked on entry to the group
     (following the same rules as the `on entry' command group related	to  :set
     and :unset commands).

     The  entry  action begins with a left parenthesis `(' and ends with a right
     parenthesis `)' on an otherwise empty line:
	  comp.sources. +src/$L/ (
	       :set cross-post
	  )
     The last entry action can be repeated by specifying an empty set of  paren-
     thesis, e.g.
	  comp.unix. +unix ()
     The  entry  action  of  a preceding group in the sequence can be associated
     with the current group(s) by specifying the name of the group in the paren-
     theses instead of the commands, e.g.
	  comp.unix. +unix (comp.sources.unix)
     A macro can also be associated with the entry action by specifying its num-
     ber in the same way as the group name above, e.g.
	  rec.music. +music (30)
     Notice that it is the current definition of the macro which  is  associated
     with  the group, so if the macro is later redefined with the `:define' com-
     mand, it will not have any effect on the entry action.

     Group names can be specified using the following notations:

     group.name
	    Append the group (if it exists) to the presentation  sequence  list.
	    If	also-subgroups is set (default), all subscribed subgroups of the
	    group will be included  as	well  (if  there  are  any).   Examples:
	    "comp",  "comp.unix",  "comp.unix.questions".  If the group does not
	    exits (e.g.  "comp"), the subgroups will be included even when also-
	    subgroups is not set, i.e. "comp" is equivalent to "comp.".

     group.name.
	    Append the subgroups of the specified group to the presentation  se-
	    quence.  The group itself (if it exists) is not included.  Examples:
	    "comp.", "comp.unix.".

     Append the groups whose name ends with the specified name to the
	    sequence.  Example: ".test".

     group.name*
	    Append the group and its subgroups to the presentation sequence list
	    (even when also-subgroups is not set).  Example: "comp.unix*".

     The following meta notation can be used in a sequence file.  The group.name
     can be specified using any of the forms described above:

     ! groups
	    Completely	ignore the group or groups specified unless they are al-
	    ready in the presentation sequence (i.e. has  been	explicitly  men-
	    tioned earlier in the sequence).

     !:code groups
	    Ignore a selection of groups based on the given code letter (see be-
	    low), unless they are already included in the sequence.  Notice that
	    these  forms  only	excludes  groups from the presentation sequence,
	    i.e. they do not include the remaining groups at  this  point;  that
	    must be done explicitly elsewhere.

     !:U groups
	    Ignore  unsubscribed  groups,  i.e.  if  they  are	neither new, nor
	    present and subscribed in .newsrc.	This is useful to ignore a whole
	    hierarchy except for a few groups which are explicitly mentioned  in
	    .newsrc and still see new groups as they are created.

     !:X groups
	    Ignore  unsubscribed  and new groups, i.e. if they are not currently
	    present and subscribed in .newsrc.	This is useful to ignore a whole
	    hierarchy except for a few groups which are explicitly mentioned  in
	    .newsrc.   New  groups in the hierarchy are ignored unless `NEW' oc-
	    curs earlier in the sequence.

     !:O groups
	    Ignore old groups, i.e. unless they are new.  This is useful to  ig-
	    nore a whole hierarchy but still see new groups which are created in
	    the  hierarchy  (it  might become interesting some day).  Individual
	    groups can still be included in the sequence if they  are  specified
	    before the `!:O' entry.

     !:N groups
	    Ignore new groups in the hierarchy.

     !!     Stop building the presentation sequence.  This eliminates all groups
	    that are not already in the presentation sequence.

     NEW    This  is a pseudo group name which matches all new groups; you could
	    place this symbol early in your presentation  sequence  to	see  new
	    groups `out of sequence' (to attract your attention to them).

     RC     This  is  a  pseudo group name which matches all groups occurring in
	    the .newsrc file.  It will cause the groups in  .newsrc  to  be  ap-
	    pended  to	the  presentation sequence in the sequence in which they
	    are listed in .newsrc.

     RC:number
	    Similar to the RC entry, but limited to the first  number  lines  of
	    the .newsrc file.  Example: RC:10 (use 10 lines of .newsrc).

     RC:string
	    Similar to the RC entry, but limited to the lines up to (and includ-
	    ing)  the  first  line  (i.e. group) starting with the given string.
	    For example:  RC:alt.sources

     < group.name
	    Place the group (and its subgroups) at the beginning of the  presen-
	    tation sequence.  Notice that each `<' entry will place the group(s)
	    at the beginning of the current sequence, i.e. < A < B < C will gen-
	    erate the sequence C B A.

     > group.name
	    Place  the group (and its subgroups) after all other groups that are
	    and will be entered into the presentation sequence.

     @	    Disable the `!!' command.  This can be included in the personal pre-
	    sentation sequence if the global sequence file contains a  !!  entry
	    (see example 1 below).

     % .... %
	    Starts and ends a region of the sequence where it is possible to in-
	    clude  groups which has been eliminated earlier.  This may be useful
	    to	alter	the   sequence	 of   some   groups,   e.g.   to   place
	    comp.sources.bugs  after  all other source groups, the following se-
	    quence can be used:
	    ! comp.sources.bugs comp.sources* % comp.sources.bugs %

     Example 1: In a company where ordinary users only	should	read  the  local
     news  groups, and ignore the rest (including new news groups which are oth-
     erwise always subscribed to initially), can use the following  global  pre-
     sentation sequence:
	  general
	  follow
	  ! local.test
	  local
	  !!
     The "expert" users in the company must put the @ command somewhere in their
     private sequence to avoid losing news groups which they have not explicitly
     mentioned in their init file.

     Example  2: This is the global sequence for systems with heavy news addicts
     who setup their own sequences anyway.
	  # all must read the general news first
	  < general
	  # test is test, and junk is junk,
	  # so it is placed at the very end
	  > test
	  > .test
	  > junk
	  # this is the standard sequence which everybody may
	  # change to their own liking
	  local     # our local groups
	  dk   # the Danish groups
	  eunet.general # to present it before eunet.followup
	  eunet     # the other European groups
	  comp # the serious groups
	  news # news on news
	  sci  # other serious groups
	  rec  # not really that important (don't quote me)
	  misc # well, it must be somewhere
	  # the groups that are not listed above goes here
     Notice the use of comments in the sequence where they are	allowed  at  the
     end of non-empty lines as well.

     Example  3: My own presentation sequence (in the init file) simply lists my
     favourite groups and the corresponding default save files:
	sequence
	  !:U alt*  # ignore unsubscribed alt groups
	  news.software.nn +nn
	  comp.sys.ti* +ti/$L
	  NEW  # show new groups here
	  news*
	  rec.music.synth +synth/
	  comp.emacs*,gnu.emacs +emacs/misc
	  comp.risks +risks
	  eunet.sources +src/unix/
	  comp.sources* +src/$L/
     The presentation sequence is not used when nn is called with  one	or  more
     news  group  names on the command line; it is thus possible to read ignored
     groups (on explicit request) wihtout changing the init file.   (Of  course,
     you can also use the G command to read ignored groups).

MERGING NEWS GROUPS
     The third example above contains the following line:
	  comp.emacs*,gnu.emacs +emacs/misc
     This  is  the  syntax  used  to  merge groups.  When two or more groups are
     merged, all new articles in these groups are presented together as if  they
     were  one	group.	 To merge groups, their names must be listed together in
     the sequence, and only separated by a single comma.  To  merge  the  groups
     resulting from a single group pattern (e.g. comp.emacs*), the group pattern
     must be followed by a comma and a blank (e.g. comp.emacs*, ...).

     Merged  groups are presented as the first group in the "list", and the word
     "MERGED" will be shown after the group name.  The Y {overview} command will
     still show merged groups as individual groups, but they will  be  annotated
     with  the	symbol	`&' on the first of the groups, and a `+' on the rest of
     the groups.

     In the current version, the concept of the current group in connection with
     merged groups is a bit fuzzy.  This should only be noticeable  with  the  G
     command,  which  will  take  the  most recently used group among the merged
     groups as the current group.  So things like G = ... may not always work as
     expected.

ENVIRONMENT
     The following environment variables are used by nn:

     EDITOR.  The editor invoked when editing replies, follow-ups, and composing
     mail.  nn knows about the following editors: vi, ded, GNU emacs, and micro-
     emacs, and will try to position the cursor on the first line following  the
     header, i.e. after the blank line which must not be deleted!  If an article
     has  been	included, the cursor is placed on the first line of the included
     text (to allow you to delete sections easily).

     LOGNAME.  This is taken as the login name of the current user.  It is  used
     by  nn  to return failed mail.  If it is not defined, nn will use the value
     of USER, or if that is not defined either, nn will use the call `who am  i'
     to  get this information.	If all attempts fail, the failed mail is dropped
     in the bit bucket.

     PAGER.  This is used as the initial value of the pager variable.

     SHELL.  This is the shell which is spawned if the system cannot suspend nn,
     and it will be used to execute the shell escapes.

     TERM.  The terminal type.

NOTES
     When NNTP is being used over a slow link (as with the ppp	protocol  and  a
     modem),  it  may  be desirable to suppress the retrieval of the information
     about new newsgroups, and their purpose, since  they  can	be  hundreds  of
     KBytes  in  size.	 To  do this, the new-group-action and show-purpose-mode
     variables should be set to 0 in your init file.  See  the	descriptions  of
     those variables for more info.

     Unfortunately,  the  list	of  active newsgroups is still fetched, since nn
     uses it to determine which groups to check for  new  articles.   Even  this
     could  be avoided, but the cost would be checking for new articles in every
     group, which might well  be  slower  overall,  although  startup  would  be
     faster.

FILES
     ~/.newsrc	       The record of read articles.
     ~/.nn/select      The record of selected and seen articles.
     ~/.nn/init        Personal configuration and presentation sequence.
     ~/.nn/kill        The automatic kills and selections.
     ~/.nn/KILL.COMP   The compiled kill file.
     ~/.nn/LAST        The time stamp of the last new news group we have seen.
     ~/.nn/NEXTG       Active group last time nn was quit.
     ~/.nn/.param      Parameter file for the aux script
     $lib/setup        System-wide setup - always read first.
     $lib/init	       System-wide setup and presentation sequence.
     $lib/aux	       The response edit and send script.
     $lib/routes       Mapping rules for mail addresses (on non-domain systems).
     $db/*	       The news data base.
     /etc/termcap      Terminal data base [BSD].
     /usr/lib/terminfo/*Terminal data base [SysV].
     /usr/local/lib/nntp_serverName  of  remote  nntp  server, if not changed by
     setting the environment variable NNTPSERVER or the nntp-server variable  on
     the command line.
     The  name $lib and $db are the directories used for the auxiliary files and
     the news data base respectively.  Their name and  location  is  defined  at
     compile time.  Common choices are /usr/local/lib/nn or /usr/lib/news/nn for
     $lib and /usr/spool/nn or /usr/spool/news/.nn for $db.

SEE ALSO
     Other netnews documentation.
     RFC 1341, MIME (Multipurpose Internet Mail Extensions)
     nncheck(1), nngoback(1), nngrab(1), nngrep(1), nnpost(1), nntidy(1)
     nnusage(1M), nnspew(8)

ORIGINAL AUTHOR
     Kim F. Storm, Texas Instruments A/S, Denmark

CURRENT MAINTAINER
     Michael T Pins mtpins@nndev.org

     The NNTP support was designed and implemented by Rene Seindal, Institute of
     Datalogy, University of Copenhagen, Denmark.

     The  news.software.nn  group is used for discussion on all subjects related
     to the nn news reader.  This includes, but is not	limited  to,  questions,
     answers,  ideas,  hints,  information  from the development group, patches,
     etc.

4th Berkeley Distribution	   Release 6.6				   NN(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nn&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help