dwww Home | Manual pages | Find package

NN(1)                                                                    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 related 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  sub-
       scribe  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
       articles  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 pre-
       sented 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  com-
       mand  line  to an alternate 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 man-
       ual.

       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 options 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
              before prompting to continue.  This is useful on slow  terminals
              and  modem lines to be able to see the first few lines of longer
              articles.

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

       -s/regexp
              Collect only articles whose subject matches the regular  expres-
              sion  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
              articles.  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
              subgroups 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
       requests 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 confirmed simply by hitting space.  For example, to confirm the cre-
       ation  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  example, the default value for a file name is the last
       file name you have entered, and the default shell command is your  pre-
       vious  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 set-
       tings.  On systems without job control, the suspend key  will  be  con-
       trol-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
              interactive 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
       standard 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 max-
              imum number of saved messages is controlled via the message-his-
              tory variable.)

       !    {shell}
              Shell escape.  The user is prompted for a command which is  exe-
              cuted  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
              articles  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,
       expert, 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  oppor-
       tunity  to  select  among  all the articles in the group, hitting space
       will enter reading 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 hitting space a few times.

       The articles will be presented on the menu using one of  the  following
       layouts:

       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 arti-
       cle, 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 article, 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
       subject lines, e.g. comp.sources.

       Layout 4 is a hybrid between layout 1 and 3.  It will normally use lay-
       out  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
       selected 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.
       changing 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  actu-
       ally into their password file) which result in nn producing quite cryp-
       tic, and sometimes funny "names".

       One a usual 80 column terminal, the Subject  is  limited  to  about  60
       characters  (75  in  layout 3) and is thus only an approximation to the
       actual subject 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  adja-
       cent  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  arti-
       cles  sharing  the same subject will be shown with a single line on the
       menu corresponding to the first of the articles.  The number  of  arti-
       cles  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,  sub-
       ject-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 differ-
       entiate between read and unread articles, selected  articles,  articles
       marked  for  later  treatment, etc.  Depending on how nn is configured,
       these attributes 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 fol-
       lowing the article id or by high-lighting the menu line,  depending  on
       the  attribute  and  the  capabilities  of  the terminal.  You can also
       change the attributes to your own taste (see the attributes variable).

       The attribute of an article can be changed explicitly using the  selec-
       tion 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  important  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
              permanently 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
              unread  articles on the current (or all) menu pages as seen when
              they are used.  Other commands  that  scroll  through  the  menu
              pages  or  enter  reading  mode  will let unread articles remain
              unread.

       unread Menu attribute " " - indicates an unread article.   These  arti-
              cles 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 articles 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 selected  automatically  via  the  auto-selection  facility
              rather  than  manually  by you.  Very few commands differentiate
              between these attributes 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 arti-
              cles 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 perma-
              nent  attribute,  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 can-
              celled.  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 attributes, 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
              immediately  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/select (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
       articles 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
       terminal does not have this capability by placing an asterisk (*) after
       the selection letter or digit.

       Most  commands  which  are  used to select articles will work as toggle
       commands.  If the article is  not  already  selected,  the  selectedat-
       tribute on the article(s), independent on the previous attribute.  Oth-
       erwise, the article(s) will be deselected and  marked  unread.   Conse-
       quently, any article can be marked unread simply be selecting and dese-
       lecting it.

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

       abc...z 01..9  {article N}
              The article with the given identification  letter  or  digit  is
              selected  or deselected.  The following article becomes the cur-
              rent article.  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
              article.  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 articles 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 articles.)

       ~    {unselect-all}
              Deselect  all  auto-selected  articles  in the group (this works
              across all menu pages).  If the command is executed  twice,  the
              selected articles 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 subject (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 articles on the current menu page, all articles with a  spe-
              cific  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.  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}
              command to set the leave-next attribute on a subset of the arti-
              cles 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
       articles,  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
              selected  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 arti-
              cles 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 arti-
              cles.  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 controlled with the variable marked-by-read-return.)

       X    {read-skip}
              Mark  all unmarked articles seen on all menu pages (or the pages
              defined 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 optionally be marked seen

       P    {previous}
              Go  back  to the previous group.  This command will enter selec-
              tion 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
       articles will normally be marked read when you  leave  the  group,  and
       these articles are not shown the next time you enter the group.

       In  all  releases prior to release 6.4, it was impossible to have indi-
       vidual articles in a group marked unread when you left a group, and the
       default  behaviour of release 6.4 onwards will closely match the tradi-
       tional behaviour.  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 confir-
       mation before 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 entering 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-sub-
       ject, 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  sub-
       jects: 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 sub-
       ject, 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,  sim-
       ply  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 com-
       mands:

       (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,
       selected, 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, con-
       solidated-menu, counter-delim-left,  counter-delim-right,  counter-pad-
       ding, save-closed-mode.

THE JUNK-ARTICLES AND LEAVE-NEXT COMMANDS
       The J {junk-articles} command is a very flexible command which can per-
       form 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 expired.

       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
       selection 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 avail-
       able:

       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
              article.

       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  arti-
              cle,  and redraw current page.  If the article is saved while it
              is decrypted 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
              current 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 spa-
              ces.  (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 automatically selected and shown once more, or the treat-
              ment 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 saying what you intended to say.

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

       p    {previous}
              Goto previous article.

       k    {next-subject}
              Kill  subject.  Skips rest of current article, and all following
              articles 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 subject as the current article (similar to the `*' com-
              mand in selection mode).  This can be used to  select  only  the
              first  article  on  a subject in selection mode, and then select
              all follow-ups in reading mode if you find the article interest-
              ing.

       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  directly  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 direction.

       The following commands perform an immediate return from reading mode to
       selection 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 arti-
              cle.

       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 article.

       %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 ar-
       chives, 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 out-
              put will be identical 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 arti-
              cle 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 direc-
              tory 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 redrawn 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.Headers") 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  decoded  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 direc-
              tory) with one decode command.
                To be able to decode a binary file which spans  several  arti-
              cles,  nn  may have to ignore lines which fail the normal sanity
              checks on uuencoded data instead of treating them  as  transmis-
              sion  errors.  Consequently, it is strongly recommended to check
              the resulting decoded file using the checksum which is  normally
              contained in the original article.  (Actually, you are also sup-
              posed to do this after decoding with a stand-alone uudecode pro-
              gram).
                The header and initial information in the decoded articles are
              saved in  the  file  specified  in  decode-header-file  (default
              "Decode.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 accord-
       ing 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 uncondition-
       ally.

       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  format  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-offset.

       In selection mode, nn will prompt you for the identifier of one or more
       articles 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  cur-
       rent menu page and mark them read.

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

       This is very useful to unpack an entire package using the  :unshar  and
       :decode  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+ commands 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 arti-
       cles.  The escape string can  be  redefined  via  the  embedded-header-
       escape variable.

       Articles  can  optionally be saved in MAIL or MMDF compatible format by
       setting the mail-format and  mmdf-format  variables.   These  variables
       only  specify the format used when creating a new folder, while append-
       ing to an existing folder will be done in  the  format  of  the  folder
       (unless folder-format-check is false).

       Related  variables: confirm-append, confirm-create, decode-header-file,
       decode-skip-prefix,  default-save-file,  folder-save-file,  edit-patch-
       command,  edit-print-command,  edit-unshar-command, folder, folder-for-
       mat-check, mail-format,  mmdf-format,  patch-command,  printer,  quick-
       save,  save-counter, save-counter-offset, save-report, suggest-default-
       save, unshar-command, unshar-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 sepa-
       rate article.

       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
       normal C {cancel} command described later.   When  you  quit  from  the
       folder, you will then be given the option to remove the cancelled arti-
       cles from the folder.

       The original folder is saved in a file named `BackupFolder~' in the .nn
       directory  (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
       permissions).  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 arti-
       cles 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
       expansions 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 directory.  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  create  a separate pipe, but all articles saved or written
              in one command (in selection mode) are given  as  input  to  the
              same shell command.  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 arti-
              cle  by  using a double pipe symbol in the beginning of the com-
              mand, 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 peri-
              ods 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 cur-
              rent 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
              selection 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 possibil-
       ity 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
       contains 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 compo-
       nent, 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 cur-
       rent 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 arti-
       cle 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
              preferred 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
              alternative group is specified in the article header).  The dis-
              tribution  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
              selection 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 subject of the letter  (if  an  article  is
              included,  you may hit space to get the default subject which is
              the subject of the included article).
                The header of the article is only included in the posted  let-
              ter  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 enter a space because space is used for group  name  com-
              pletion as described 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 pag-
              ing  through  this  list, you can enter q to quit looking at the
              list.  You can also enter / followed  by  a  regular  expression
              (typically  a  single  word) which will cause nn to show a (much
              shorter) list containing only the  lines  matching  the  regular
              expression.
                 Normally,  you  will  be prompted for the distribution of the
              article 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
       include a copy of the article in the file with each non-empty line pre-
       fixed by a `>' character (except in mail mode), and invoke an editor of
       your choice (using the EDITOR environment variable) on this file, posi-
       tioning  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.  Oth-
       erwise  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 action):
           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
       values 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 unfin-
       ished response and ask you whether you want to complete it  now.   Only
       one  unfinished response can exist at a time.  Notice that the $A envi-
       ronment variable may no longer be valid as a path to the original arti-
       cle when the response 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  Content-XXX  header, nn will add the following headers to your mes-
       sage 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  occa-
       sionally be stripped. Although the MIME standard provides solutions for
       this by encoding 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 with-
       out 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
       presented, 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
       newsgroup, 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
              entered, it is equivalent to the default save file for the  cur-
              rent 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
              article (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
              applied to the current group (e.g. G return = and G = are equiv-
              alent).

       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
       physically!)  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 extra articles included on the same menu (without cre-
              ating 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 speci-
              fied 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 articles 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.
              Notice 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
              either 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  regular  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
              command, 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 previ-
              ously been visited.

       P    {previous}
              When used within an A or B command, it skips  backwards  to  the
              preceding  group  in  the sequence with unread articles or which
              has previously 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  inter-
       ested  in, or find completely uninteresting, you can easily instruct nn
       to auto-select or auto-kill articles with  specific  subjects  or  from
       specific  authors.   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
              entry 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
       newsgroups.   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 auto-
       matically 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
              "select" 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 pre-
              vious 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 including 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
              specified 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  enter-
              ing  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
              especially note the presence or absence of the word exact  which
              specify 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 # character 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 omit-
       ted 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
              follow-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 following 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  cor-
              responding  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 speci-
              fied, a simple string match is performed using the given string.

       = (optional)
              Specifies that the match against the name  or  subject  is  case
              sensitive.  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  corre-
              sponding to each string must be separated by either an or opera-
              tor `|' or an and operator `&'.  The and operator has  a  higher
              precedence  than  the or operator, e.g.  a complex match expres-
              sion 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  expres-
       sion  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 backslash 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
       operator (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
       advanced 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  environment  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
              current 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 rewrit-
              ten 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
              using 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  com-
       mand  :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
              beginning  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
              operation  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
              section 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
              subject, 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 vari-
              able, 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
              title 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  administra-
              tor in the file "motd" in the lib directory.  This file is auto-
              matically 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
              extended 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 (use-
              ful  on  slow  terminals).  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 return 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
              current group, depending on mode: all (list the number of unread
              articles in all groups including groups which  you  have  unsub-
              scribed  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'  {over-
              view} 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  arti-
              cles  argument  is omitted, the number of unread articles in the
              group will be set to the number of unread articles when  nn  was
              invoked.  Otherwise, 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-
       unsubscribed, 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
       automatically.  If you instruct nn to catch up automatically,  it  will
       simply  mark all articles in all groups as read, thus bringing you com-
       pletely 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  fol-
       lowed 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
              return).

       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
              unread.

VARIABLES AND OPTIONS
       It is possible to control the behaviour of nn through the setting  (and
       unsetting) of the variables described below.  There are several ways of
       setting 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
       current 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)  com-
       mands:
            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 win-
       dow, 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
       example, 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-established 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
       backslash 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  vari-
       able 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
       included-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
       characters.   They  can be intermixed with other options, and are exam-
       ined 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
              either 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 cur-
              rent value in the message line.

       Variables are global by default, but a local instantiation of the vari-
       able  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  exam-
              ple, 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  automati-
              cally  appended  to responses sent via E-mail.  If true, .signa-
              ture 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  automati-
              cally  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  repre-
              sent 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 arti-
              cle.  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 conditionally if the value is greater than zero and the num-
              ber 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  fol-
              lows:
              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 automati-
              cally.

       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
              automatically 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 ini-
              tial contents 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 directly 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 com-
              mand are sent.

       case-fold-search         (boolean, default true)
              When set, string and regular expression matching  will  be  case
              independent.   This is related to all commands matching on names
              or subjects, 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
              default bit width of the character set  (7  for  "us-ascii"  and
              "unknown", 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  let-
              ters  being mailed (unless the value is "unknown", in which case
              this is determined 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
              presented in full on the menus will be "collapsed" by removing a
              sufficient 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
              completion 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 com-
              press command) is turned on or off when  an  article  is  shown.
              The  compression  is  still toggled for the current article with
              the compress command key.

       confirm-append      (boolean, default false)
              When set, nn will ask for confirmation before appending an arti-
              cle 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  presentation  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-append).

       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 interrupt, 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 arti-
              cles 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 indicate 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  (partially)  remedy this, all counters (and subjects without
              counters) are prefixed by up to pad spaces to get better  align-
              ment.  Increasing it further may yield practially perfect align-
              ment 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
              possible  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 occur-
              ring on the Newsgroups: line which the user subscribes to  (i.e.
              you  let  the  poster  decide which group is most appropriate to
              read his posting).

       cross-post          (boolean, default false)
              Normally, nn will only show cross-posted articles in  the  first
              subscribed  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 arti-
              cles 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  charac-
              ters  are  sent  directly to the screen (unless monitor is set).
              Setting the charset variable also  sets  this  variable  to  the
              default bit width of character 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  map-
              ping section for more details.
              If  the charset has value "unknown", the value of data-bits also
              determines 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
              articles decoded with the :decode command is saved.  Unless  the
              file  name  starts  with  a `/', the file will be created in the
              same directory 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  uuen-
              coded 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
              articles using the follow and post commands if the corresponding
              follow-distribution or post-distribution variable  contains  the
              default option.

       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 specified 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
              below)  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-com-
              mand  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  com-
              mand  and give you a chance to edit it before printing the arti-
              cles.  Otherwise the articles are just printed using the current
              printer command.

       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 variable 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-com-
              mand  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  vari-
              able 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 following 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 prompt-
              ing 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
              normally 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 after-
              wards.   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 character reads without disabling flow con-
              trol.

       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 envi-
              ronment 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  vari-
              able  is not set, folders are assumed to be in the format speci-
              fied via the mmdf-format 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 con-
              structed 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
              specified and the original article has a  Distribution:  header,
              that header is used.  Else if default is specified (or distribu-
              tion 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.  How-
              ever, 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-distri-
              bution 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 fol-
              lowing 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
              showing 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
              possible 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 invo-
              cation of nn or another newsreader - and not auto-selected - are
              automatically 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 termi-
              nal (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  spe-
              cific  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
              articles.  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
              possibility to change it, but please don't.  Lines with  a  mix-
              ture of prefixes 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  arti-
              cle 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
              program.   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 automatically 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-selected (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
              execution  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 specified 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
              (separated by semi-colons `;') which are added to the header  of
              mail  sent from nn using the reply and mail commands.  For exam-
              ple:
                   set mail-header Reply-To: storm@texas.dk;Organization: TI - DK
              To include a semicolon `;' in a header, precede it  by  a  back-
              slash  (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 mes-
              sage including 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
              program.  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  fol-
              lowing values 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 vari-
              able) using the attributes defined by the shading-on  and  shad-
              ing-off variables (of if not set, with the underline attribute).
              This is typically 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  readabil-
              ity  at the cost of presenting fewer articles on each page.  The
              following values 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
              recalled 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-
              format-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) using 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-
              unsubscribed 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
              include new groups, and therefore you must explictly add any new
              groups  that  you  care  about  (by editing 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
              inserted at the beginning of the .newsrc file.
              2*)   Groups  not  in  .newsrc are considered to be new, and are
              appended 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 com-
              patible  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
              (separated 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 con-
              figuration.  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
              default 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-
              articles) 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 ear-
              lier).  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  before  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 capability.

       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 con-
              structed when posting an original article.  Its value is a  list
              of words selected from the following list:
              [ ask ] [ default | distribution ]
              This is interpreted in two steps:
              -  First  the default distribution is determined.  If default is
              specified (or distribution is omitted), the  value  of  default-
              distribution  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-article command is used, or continue is used at the end
              of the article.  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 cur-
              rent 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  action 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 {previ-
              ous}  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,
              corresponding to the three save-* commands: 0  prints  only  the
              article  body (no header), 1 prints a short header, and 2 prints
              the full article 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 similar to the terminal to avoid problems with screen han-
              dling (e.g. lp -s on System V).

       query-signature          (boolean, default ...)
              Will cause nn to require confirmation before appending the .sig-
              nature 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 Refer-
              ences: line.  The re-layout variable may be set to use a differ-
              ent 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  subject  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-lay-
              out 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
              setting the -r option permanently).

       report-cost         (boolean, default true)
              This  variable  is  ignored unless nn is running with accounting
              enabled (see nnacct).  When set, nn will report the cost of  the
              current 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 retain-seen-status is set, the seen attribute on the
              articles will survive to the next time  the  group  is  entered.
              (This  is  not  recommended  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
              article  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
              article'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 using 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  substi-
              tute  the  * with successive numbers starting from one.  Setting
              this variable 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 arti-
              cle  is saved via the O {save-short} command.  The fields speci-
              fication 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  seconds,  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  arti-
              cles.

       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
              "shading"  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 behaviour 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
              purpose  data from being read from the server; this can be help-
              ful 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
              unread  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
              response 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 identifier 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 articles 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
              sorting 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  argument.  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  use-
              ful  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
              characters match.  Setting this uncritically to a low value  may
              cause unexpected 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
              identical 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  intended  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 sub-
              ject-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 sin-
              gle + must be specified.

       tidy-newsrc         (boolean, default false)
              When set, nn will automatically remove lines from .newsrc  which
              represent  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
              output  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
              articles unpacked with the :unshar command is saved.  Unless the
              file  name  starts  with  a `/', the file will be created in the
              same directory 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
              current  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 effect.

       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
              specially 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 con-
              tents 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 term-
              cap/terminfo 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 con-
       taining 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 com-
       mands 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  vari-
       able (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
       equivalent set, unset, or toggle command.

       Besides  the options described below, you can set any of nn's variables
       directly 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 set-
       ting 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
              articles 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  con-
              tain a `/' are looked for in the ~/.nn directory.  An empty ele-
              ment 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
              useful 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
              articles.  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 specifying a file name must follow a save command.  This man-
       ual 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 internal 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 executed.

       Extended Commands
              All the extended commands which can be executed through the com-
              mand 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 sin-
              gle 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 without prompting for a file name):
                   save-short "+$G"

       Conditionals
              Conditionals may occur anywhere in a  macro;  a  conditional  is
              evaluated  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
              current value of boolean and integer variables using the follow-
              ing 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.  Exam-
              ples:
                   ?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
              immediately.

       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.   Exam-
              ple (confirm creation of new files):
                   save-short "+$G" yes

       no     Terminate  execution of current macro if a command requires con-
              firmation; otherwise ignore it.  If neither yes nor no is speci-
              fied  when a command requires confirmation, the user must answer
              the question as usual - if the user confirms the  action  execu-
              tion  continues normally; 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  desir-
              able  (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.  Exam-
              ple:
                   ?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
              interpretation.

       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 mappings 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
              multikeys.   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
              using 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 sequence 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 arti-
              cle 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 read-
              ing mode is:
                   map show key command

       In addition to the direct mappings described above, the following vari-
       ations 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  exe-
              cute  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 num-
              ber 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  exam-
              ple,  to  map  the home key to macro number 5 in both modes, the
              following command 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 command:
                   map keymap new-key as old-key

       Binding macros to keys
              A  previously defined macro can be bound to a key using the com-
              mand:
                   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
              decimal, 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 (corresponding 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 command, 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
       commands.  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  conven-
       tions 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
              directory.  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 default setup.

       The init file is parsed one line at a time.  If  a  line  ends  with  a
       backslash  `\',  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 comments 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 typi-
              cally 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
              define...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  follow-
              ing 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  execu-
              tion:
              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 omit-
              ted.

       Change working directory of nn
              You can use the cd command to change the working directory when-
              ever 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
              under 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
              specific 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).  Exam-
              ple:
                   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 read-
       ing.

       In  release  6.4 onwards, these possibilities are still rather rudimen-
       tary, 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  command  "[ test ]", so all the options of the test(1) com-
              mand is available.  For example, to unset the flow-control vari-
              able  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 exe-
              cuting 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 con-
              ditional can be used to switch to an init file which has a  lim-
              ited  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
              executing 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 iden-
              tical 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 associated with all groups which don't have  its  own  entry
              macro  specified  in  the  group sequence.  Otherwise, the entry
              macro will be associated with the groups in the list.  The group
              list is specified using the meta-notations described in the pre-
              sentation sequence section.
              All `:' commands at the beginning of the command group are  exe-
              cuted  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  before  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
              before nn enters the first news group.  However, postponed  com-
              mands  (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  sys-
       tem-wide init file in nn's library directory.

       You can personalize the presentation sequence by specifying an alterna-
       tive 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 encoun-
       tered).

       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 abbreviation 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
       parenthesis, 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
       parentheses 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
       number 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 associ-
       ated with the group, so if  the  macro  is  later  redefined  with  the
       `:define' command, 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  sub-
              groups 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
              sequence.  The group itself (if  it  exists)  is  not  included.
              Examples: "comp.", "comp.unix.".

       .group.name
              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
              already in the presentation sequence (i.e. has  been  explicitly
              mentioned earlier in the sequence).

       !:code groups
              Ignore a selection of groups based on the given code letter (see
              below), unless  they  are  already  included  in  the  sequence.
              Notice  that these forms only excludes groups from the presenta-
              tion 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  cre-
              ated.

       !:X groups
              Ignore  unsubscribed  and  new groups, i.e. if they are not cur-
              rently 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' occurs earlier in the sequence.

       !:O groups
              Ignore  old groups, i.e. unless they are new.  This is useful to
              ignore a whole hierarchy but still see new groups which are cre-
              ated  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
              appended  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
              including) 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 pre-
              sentation sequence.  Notice that each `<' entry will  place  the
              group(s)  at the beginning of the current sequence, i.e. < A < B
              < C will generate 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
              presentation 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
              include 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
              sequence 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
       otherwise always subscribed to initially), can use the following global
       presentation 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  com-
       posing 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 eas-
       ily).

       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 informa-
       tion  about  new  newsgroups, and their purpose, since they can be hun-
       dreds 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 sys-
       tems).
       $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,  Insti-
       tute 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)

Generated by dwww version 1.11.3 on Thu May 23 17:02:16 CEST 2013.