Provided by: nn_6.7.2-1_i386 bug

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
       subscribe  to using a menu based article selection prior to reading the
       articles in the news group.

       When a news group is entered, nn will locate all the  presently  unread
       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
       presented on the screen.

       This will be done very quickly, because nn uses the  NOV  database  via
       the  NNTP  XOVER  command.  The news server to use can be overridden by
       setting the environment variable $NNTPSERVER to the name of the  system
       (such  as  news.newserver.com),  or by setting the variable nntp-server
       (on the command line only, since it is looked at before the init file),
       as  "nntp-server=news.some.domain").   If you use multiple servers, you
       probably want to set the  nn-directory  and  newsrc  variables  on  the
       command  line  to  an  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
       manual.

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

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

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

FREQUENTLY USED OPTIONS

       nn  accepts a lot of command line options, but here only the frequently
       used options are described.  Options can also  be  set  permanently  by
       including  appropriate  variable  settings  in  the init file described
       later.  All 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
              expression regexp.  This is normally combined with the -x and -m
              options to find all articles on a specific subject.

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

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

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

       -x[N]  Present  (or  scan)  all  (or the last N) unread as well as read
              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
       creation of a save file, just hit space, but if one or more directories
       also have to be created, you must enter y.

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

       erase
              Delete the last character on the line.

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

       kill
              Delete all characters on the line.

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

       suspend
              Suspend nn if supported by  the  system.   Otherwise,  spawn  an
              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
              maximum  number of saved messages is controlled via the message-
              history variable.)

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

       Q    {quit}
              Quit nn.  When you use this command,  you  neither  lose  unread
              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
       opportunity  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
       article, Name is the real name of the sender (or the  mail  address  if
       the  real  name  cannot  be  found),  Subject  is  the  contents of the
       "Subject:" line in the 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
       layout 1, but it will use layout 3 (with a little indentation) for menu
       lines  where the subject is longer than the space available with layout
       1.

       Layout 1 is the default layout, and an alternative menu line layout  is
       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
       actually into their password file) which result in nn  producing  quite
       cryptic, and sometimes funny "names".

       One  a  usual  80  column  terminal, the Subject is limited to about 60
       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
       adjacent articles may share the same subject (ignoring any  ‘>’s).   In
       this case, only the first article will show the subject of the article;
       the rest will only show the ‘>’ character in the subject  field  (or  a
       ‘-’  if  there is no ‘>’ at the beginning of the line).  A typical menu
       will thus only show each subject once, saving a lot of time in scanning
       the news articles.

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

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

ARTICLE ATTRIBUTES

       While nn is running and between invocations, nn associates an attribute
       with each article  on  your  system.   These  attributes  are  used  to
       differentiate  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
       following  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
       selection   mode   commands   described   below,   or  it  will  change
       automatically for example when  you  have  read  or  saved  a  selected
       article.   If  a  command may change any article attributes, it will be
       noted in the description of the command.  The following descriptions of
       the  attributes  will only mention the most 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
              articles  were  unread  when you entered the group, and they may
              remain unread when you leave the group, unless  they  have  been
              marked  seen  by the command that you used to leave the group or
              enter reading mode.

       selected
              Menu line high-lighted (or menu attribute "*") - indicates  that
              you  have  selected  the  article.   If you leave the group, the
              selected 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
              articles may be selected (on demand)  when  you  have  read  all
              selected  articles  in  a  group.  However, if you do not select
              them  then  immediately,  they  are  stored  as  the  leave-next
              attribute described below.

       leave-next
              Menu  attribute  "="  - indicates that the article is marked for
              later treatment by  the  leave-next  (L)  command.   This  is  a
              permanent  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
              cancelled.  This is mainly useful when tidying a folder;  it  is
              set by the cancel (C) command, and can be cleared by any command
              that change 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
       selectedattribute  on  the  article(s),  independent  on  the  previous
       attribute.  Otherwise, the article(s) will  be  deselected  and  marked
       unread.   Consequently,  any  article  can  be  marked unread simply be
       selecting and deselecting it.

       During selection, the cursor will normally be  placed  on  the  article
       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
       current 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
              current 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
              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.   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
              articles on the menu.  It is also described further below.

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

       >    {page+1}
              Goto next menu page.

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

       $    {page=$}
              Goto last menu page.

       ^    {page=1}
              Goto first menu page.

       The  following commands are used to enter reading mode for the selected
       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
              articles  on  the  current  menu  page will remain unread.  (The
              newline key has the same effect).

       Z    {read-return}
              Enter reading  mode  immediately  with  the  currently  selected
              articles.  When all articles have been read, return to selection
              mode in the current group.  It will mark selected articles  read
              as  they  are read, but unread articles are not normally changed
              (can be 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
              selection  mode  on  the  last  active  group (two P commands in
              sequence will bring you to the current  group).   If  there  are
              still  some  unread  articles  in the group, only those articles
              will be shown.  Otherwise, all the articles  which  were  unread
              when nn was invoked will be shown marked with the read attribute
              (which can be changed as usual).

       As described in the "Article Attributes" section,  the  read  and  seen
       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
       individual articles in a group marked unread when you left a group, and
       the default behaviour of release 6.4 onwards  will  closely  match  the
       traditional  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
       confirmation  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-
       subject, case-fold-search, confirm-auto-quit,  confirm-entry,  confirm-
       junk-seen, marked-by-next-group, marked-by-read-return, marked-by-read-
       skip, retain-seen-status, select-on-sender.

CONSOLIDATED MENUS

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

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

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

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

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

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

       (x     Open subject x on menu.

       ((     Open current subject.

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

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

       ))     Close current subject.

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

       unread The menu line is not high-lighted.

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

       read/seen
              There is a ‘.’ (read attribute) following the article id.

       If neither of these cases apply, i.e. there is  a  mixture  of  unread,
       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,
       consolidated-menu,  counter-delim-left,  counter-delim-right,  counter-
       padding, save-closed-mode.

THE JUNK-ARTICLES AND LEAVE-NEXT COMMANDS

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

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

       Mark Read
              This submenu allows you to mark articles read.

       Unmark This submenu allows you to mark articles unread.

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

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

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

       Leave  This menu allows you to mark articles for  later  handling  with
              the  leave-next  attribute  which  will  keep the article unread
              until you explicitly change the attribute (e.g. by  reading  it)
              or it is 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
       available:

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

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

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

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

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

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

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

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

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

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

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

       h    {page=0}
              Show the header of the article, and continue from the top of the
              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
              article, 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
              spaces.  (See also the compress variable)

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

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

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

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

       p    {previous}
              Goto previous article.

       k    {next-subject}
              Kill subject.  Skips rest of current article, and all  following
              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  ‘*’
              command 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
              interesting.

       a    {advance-article}
              Goto the following article  on  the  menu  even  if  it  is  not
              selected.   This  command  skips the rest of the current article
              and jumps 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
              article.

       l    {leave-article}
              Mark  the article as selected (!) on the menu for handling later
              on.  Then skip the rest of the current article, and preview  the
              next 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
       archives, decode binaries, etc.  It is possible to use the commands  in
       both  reading mode to save the current article and in selection mode to
       save one or more articles on the menu.

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

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

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

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

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

       :print    {print}
              Print article.  Instead of a file name, this command will prompt
              for the print command to  which  the  current  article  will  be
              piped.   The default print command is specified at compile time,
              but it can be changed by  setting  the  printer  variable.   The
              output will be 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
              article through the patch command.
                The  output from the patch process will be shown on the screen
              and also appended to a file  named  Patch.Result  in  the  patch
              directory.

       :unshar   {unshar}
              Unshar  articles.   You  will  be  prompted  for  the  name of a
              directory in which you want nn to unshar the articles.  nn  will
              then  pipe  the  proper  parts of the article body into a Bourne
              Shell whose working directory  will  be  set  to  the  specified
              directory.
                During  the  unpacking,  the  normal  output  from  the unshar
              process will appear on the screen, and the menu or article  text
              will be 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
              directory) with one decode command.
                To  be  able  to  decode  a  binary  file  which spans several
              articles, nn may have to ignore  lines  which  fail  the  normal
              sanity  checks  on  uuencoded  data  instead of treating them as
              transmission errors.  Consequently, it is  strongly  recommended
              to  check the resulting decoded file using the checksum which is
              normally contained in the original article.  (Actually, you  are
              also  supposed  to  do  this  after  decoding with a stand-alone
              uudecode program).
                The header and initial information in the decoded articles are
              saved  in  the  file  specified  in  decode-header-file (default
              "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
       according to the rules described in the section on file name  expansion
       below.   For  each group, it is possible to specify a default save file
       in the init file, either in  connection  with  the  group  presentation
       sequence or in a separate save-files section (see below).  If a default
       save file is specified for the group, nn will show this on  the  prompt
       line  when  it  prompts  for  the file name.  You can edit this name as
       usual, but if you kill the entire name immediately, nn will replace the
       default  name with the last file name you entered.  If you kill this as
       well, nn will leave you with a blank line.

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

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

       If the file name contains an asterisk, e.g.
            part*.shar
       nn will save each of the articles in uniquely named  files  constructed
       by  replacing  the  asterisk by numbers from the sequence 1, 2, 3, etc.
       The 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
       current menu page and mark them read.

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

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

       Articles can optionally be saved in MAIL or MMDF compatible  format  by
       setting  the  mail-format  and  mmdf-format variables.  These variables
       only specify  the  format  used  when  creating  a  new  folder,  while
       appending  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-
       format-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
       separate 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
       articles 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
       articles are kept and which are removed as the folder is rewritten.

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

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

FILE NAME EXPANSION

       When the save commands prompts for a file name, the following file name
       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
              contained  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
              article by using a double pipe symbol in the  beginning  of  the
              command, e.g.
                   || cd ~/src/nn ; patch

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

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

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

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

       $N     will be expanded to the (local) article number, e.g.  1099.   In
              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
       possibility is +$F/$N.

       As mentioned above, you can also instruct nn to save a series of  files
       in  separate, unique files.  All that is required is that the file name
       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
       component, and get the first possibility for the  next  component,  and
       then use space to go through the other possible completions.

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

       The current completion can be deleted with the erase key.

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

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

POSTING AND RESPONDING TO ARTICLES

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

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

       R    {reply}
              Reply  through  mail  to the author of the article.  This is the
              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
              distribution  of  the  follow-up  is  normally  the  same as the
              original article, but this  can  be  modified  via  the  follow-
              distribution variable.

       M    {mail}
              Mail  a  letter or forward an article to a single recipient.  In
              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
              letter  if it is forwarded (i.e. not edited), or if the variable
              include-full-header is set.

       :post     {post}
              Post a new article to any newsgroup.  This command  will  prompt
              you  for  a  comma-separated  list of newsgroups to post to (you
              cannot enter a space  because  space  is  used  for  group  name
              completion 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
              paging through this list, you can enter q to quit looking at the
              list.  You can also enter / followed  by  a  regular  expression
              (typically  a  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
       prefixed by a ‘>’ character (except in mail mode), and invoke an editor
       of your choice (using the EDITOR environment variable)  on  this  file,
       positioning  you  on  the  first line of the body of the article (if it
       knows the editor).

       When you have completed editing the message, it will compare it to  the
       unedited  file,  and  if  they are identical (i.e. you did not make any
       changes to the file), or it  is  empty,  the  operation  is  cancelled.
       Otherwise you will be prompted for an action to take on the constructed
       article (enter first letter followed by return, or just return to  take
       the default 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
       unfinished response and ask you whether you want to  complete  it  now.
       Only  one  unfinished response can exist at a time.  Notice that the $A
       environment variable may no longer be valid as a path to  the  original
       article 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
       message before sending it:
            MIME-Version: 1.0
            Content-Type: text/plain; charset=charset
            Content-Transfer-Encoding: 8bit
       It must be noted that sending 8-bit characters over  the  current  news
       and mail networks is risky at best; although large parts of the network
       will pass  through  such  characters  unchanged,  high-order  bits  may
       occasionally be stripped. Although the MIME standard provides solutions
       for this by 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
       without any hints about the character set used.

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

JUMPING TO OTHER GROUPS

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

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

       It is important to notice that normally the goto command is  recursive,
       i.e.  a new menu level is created when the specified group or folder is
       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
              current group.

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

       %      In  reading  mode, this reply corresponds to reading the current
              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
              equivalent).

       Specifying a folder, a file, or an article (with %) will  cause  nn  to
       treat  the  file like a digest and split it into separate articles (not
       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
              creating a new menu level).

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

       u      This instructs nn to present the unread articles  in  the  group
              (if  there are any).  If you have already read the group (in the
              current invocation of nn), the u  answer  will  instruct  nn  to
              present the 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
              previously 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
       interested  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
       automatically be updated if the normal kill file has been modified.

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

       AUTO (k)ill or (s)elect (CR => Kill subject 30 days)
              If you simply want nn to kill all articles with the  subject  of
              the  current  article  (in  reading  mode) or a specific article
              (which nn will prompt for in selection mode), just  hit  return.
              This  will  cause nn to create an entry in the kill file to kill
              the current (or specified) subject in the current  group  for  a
              period  of 30 days (which should be enough for the discussion to
              die out).
              You can control the default kill period, or  change  it  into  a
              "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
              previous answer).  Here you specify whether you want the kill or
              select  to depend on the subject of the article (s or space), or
              on the name of the author (n).

       SELECT NAME:
              (Again SELECT may be  substituted  with  KILL  and  SUBJECT  may
              replace NAME).  You must now enter a name (or subject) to select
              (or kill).  In reading mode, you may just hit return (or  %)  to
              use  the name (or subject) of the current article.  In selection
              mode, you can use the name (or subject) from an article  on  the
              menu  by  answering with % followed by the corresponding article
              identifier.
              When the name or subject is taken from an article  (the  current
              or  one  from  the  menu),  nn will only select or kill articles
              where the name or subject matches the original name  or  subject
              exactly 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
              entering a number specifying the number of days the entry should
              be active, or p to specify the entry as a permanent  entry.   An
              empty reply is equivalent to 30 days.

       CONFIRM SELECT ....
              Finally,  you will be asked to confirm the entry, and you should
              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
       omitted as well!).  Otherwise, the expire time defines the time  (as  a
       time_t value) when the entry should be expired.

       The group name field can have three forms:

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

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

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

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

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

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

       > (optional)
              When used with a subject (flag s), the kill entry  only  matches
              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
              corresponding  string  is ignored (but must be present), and the
              entry applies to articles with a non-empty References: line.

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

       = (optional)
              Specifies  that  the  match  against the name or subject is case
              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
              corresponding  to  each string must be separated by either an or
              operator|’ or an and operator&’.  The  and  operator  has  a
              higher  precedence  than  the or operator, e.g.  a complex match
              expression a|b&c|d will succeed  if  either  of  a,  b&c,  or  d
              matches.

       The  string  field  in  the  entry  is  the  name,  subject  or regular
       expression that will be matched against the name  or  subject  of  each
       article  in  the group (or all groups).  Colons and backslashes must be
       escaped with a 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.
              Cancelling  articles  in  a  folder  will cause the folder to be
              rewritten when it is closed.  In selection  mode,  you  will  be
              prompted  for  the  identifier of the article to cancel.  Normal
              users can only cancel their own articles.  See also the  section
              on folder maintenance.

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

       "    {layout}
              Change  menu layout in selection mode.  The menu will be redrawn
              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
       command :reply followed by return.   The  :post  and  :unshar  commands
       described  earlier  can  also  be bound to a key.  The complete list of
       commands which can be bound to keys is provided in the section  on  Key
       Mappings below.

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

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

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

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

       :clear Clear  the  screen  (without redraw).  This may be useful at the
              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
              variable, the values on and off must be used.

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

       :man   Call  up the online manual.  The manual is presented as a normal
              folder with the program name in the ‘From’ field and the section
              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
              administrator in the file "motd" in  the  lib  directory.   This
              file  is automatically displayed on start-up whenever it changes
              if the motd variable is set.

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

       :q     Has no effect besides redrawing the screen if necessary.  If  an
              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
              (useful 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
              unsubscribed to), total (list the total number  of  articles  in
              all   existing   groups),   sequence   (list  unread  groups  in
              presentation  sequence  order),  subscr  (list  all   subscribed
              groups),  unsub (list unsubscribed groups only).  Any other mode
              results in a listing of the number of  unread  articles  in  all
              subscribed  groups  including those you have suppressed with the
              ‘!’  symbol in the group presentation sequence.  To get just the
              currently  unread  groups  in the presentation sequence, use the
              ‘Y’ {overview} command.

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

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

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

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

       :toggle variable
              Toggle a boolean variable.

       :unread [ group ] [ articles ]
              Mark  the  current  (or  specified)  group  as  unread.   If the
              articles argument is omitted, the number of unread  articles  in
              the  group  will be set to the number of unread articles when nn
              was invoked.  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
       completely up-to-date.

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

       y      Mark all articles as read in current group.

       n      Do not update group (this is the default action if you just  hit
              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)
       commands:
            unset variable
            set novariable

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

       For example:
            set time
            unset time
            set notime
            toggle time

       Integer variables control an  amount  e.g.  the  size  of  the  preview
       window,  or the maximum number of articles to read in each group.  They
       are set with the following command:
            set variable value
       In some cases, not setting an integer value has a special meaning,  for
       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
       variable impossible:
            lock variable
       This can be used in the setup init file which is loaded unconditionally
       to  enforce local conventions or restrictions.  For example, to fix the
       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
       examined prior to other argument parsing.

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

       :set (without arguments)
              This will give a listing of the variables which have been set in
              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
              current value in the message line.

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

       The following variables are available:

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

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

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

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

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

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

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

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

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

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

       auto-select-subject (boolean, default false)
              When set, selecting an article from the menu using  the  article
              id  (a-z),  all  articles on the menu with the same subject will
              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
              initial 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
              command 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
              letters 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
              compress  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
              article to an existing file (see also confirm-create).

       confirm-auto-quit        (boolean, default false)
              When set, nn will ask for  confirmation  before  quitting  after
              having  read  the last group.  If not confirmed, nn will recycle
              the 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
              articles as read when auto-junk-seen is set.

       confirm-messages         (boolean, default false)
              In  some  cases,  nn will sleep one second (or more) when it has
              shown a message to the  user,  e.g.  in  connection  with  macro
              debugging.   Setting  confirm-messages will cause nn to wait for
              you to confirm all messages by hitting any key.  (It  will  show
              the symbol <> to 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
              alignment.  Increasing it further may yield  practially  perfect
              alignment at the cost of less space for the subject itself.

       cross-filter-seq         (boolean, default true)
              When  set,  cross posted articles will be presented in the first
              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
              occurring  on  the Newsgroups: line which the user subscribes to
              (i.e. you let the poster decide which group is most  appropriate
              to read his 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
              articles  posted  to  more  than  N newsgroups are automatically
              skipped.  A value of 5 is pretty good  for  discarding  ‘‘spam’’
              articles.

       data-bits bits (integer, default 7)
              When  set  to 7, nn will display characters with the 8th bit set
              using  a  meta-notation  M-7bit-char.   If  set  to   8,   these
              characters  are  sent  directly to the screen (unless monitor is
              set). Setting the charset variable also sets  this  variable  to
              the default bit width of 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
              mapping 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
              uuencoded  data.  This allows nn to automatically decode (multi-
              part) postings which are both uuencoded and packed with shar.

       default-distribution distr    (string, default "world")
              The distribution to use as the default suggestion  when  posting
              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-
              command  and  give you a chance to edit it before applying it to
              the articles.

       edit-print-command  (boolean, default true)
              When true, the print  command  will  show  the  current  printer
              command  and  give  you  a chance to edit it before printing the
              articles.  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-
              command  and  give you a chance to edit it before applying it to
              the articles.

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

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

       enter-last-read-mode mode     (integer, default 1)
              Normally, nn will remember which group is active when you  quit,
              and  offer  to jump directly to this group when you start nn the
              next time.  This variable is used  to  control  this  behaviour.
              The 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
              prompting for a string, e.g. a file name.

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

       expired-message-delay pause   (integer, default 1)
              If  a  selected  article  is found to have been expired, nn will
              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
              afterwards.   Setting  it to -1 will cause the message not to be
              shown at all.

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

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

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

       folder-format-check (boolean, default true)
              When saving an article with a  full  or  partial  header  in  an
              existing  folder,  nn  will check the format of the folder to be
              able to append the  article  in  the  proper  format.   If  this
              variable  is  not  set,  folders are assumed to be in the format
              specified via the mmdf-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
              constructed for a follow-up to an original article.   Its  value
              is a list of words selected from the following list:
              [ [ always ] same ] [ ask ] [ default | distribution ]
              This is interpreted in two steps:
              -  First  the  default  distribution  is determined.  If same is
              specified and the original article has a  Distribution:  header,
              that   header  is  used.   Else  if  default  is  specified  (or
              distribution is omitted), the value of  default-distribution  is
              used.   And  finally,  if  only  a  distribution  (any  word) is
              specified that is used as the default.
              - Then if ask is specified, the user will be  asked  to  confirm
              the   default  distribution  or  provide  another  distribution.
              However, if always (and same) is specified, and the default  was
              taken  from  the  original  article’s distribution, the original
              distribution is used without confirmation.
              The default value of follow-distribution is always same default,
              i.e.  use  either  the  original  distribution  or  the default-
              distribution without confirmation in either case.

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

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

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

       header-lines list   (string, no default)
              When set, it determines the list of header fields that are shown
              when  an  article  is read instead of the normal one line header
              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
              invocation 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
              terminal (if they are not handled in the tty  driver).   Setting
              this variable will treat these characters as normal input.

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

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

       include-mark-blank-lines (boolean, default false)
              When set, the included-mark is placed on blank lines in included
              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
              mixture 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
              article is to be posted.  See also inews-pipe-input.  It is  not
              used when cancelling an article!

       inews-pipe-input         (boolean, default true)
              When  set, the article to be posted will be piped into the inews
              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
              example:
                   set mail-header Reply-To: storm@texas.dk;Organization: TI - DK
              To  include  a  semicolon  ‘;’  in  a  header,  precede  it by a
              backslash (which must be doubled because of the conventions  for
              entering strings).

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

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

       mailer shell-command     (string, default REC_MAIL)
              The  program  which is invoked by nn to deliver a message to the
              mail transport.  The program  will  be  given  a  complete  mail
              message  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
              following 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
              variable)  using  the  attributes  defined by the shading-on and
              shading-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
              readability 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 editting  the  .newsrc  file,  or
              using  the  G  menu  command and then subscribing to the group).
              When NNTP is being used, this setting prevents the  active.times
              data  from  being read from the server; this can be helpful when
              using a slow link, since the  data  can  often  be  hundreds  of
              KBytes long.
              1*)   Groups  not  in  .newsrc are considered to be new, and are
              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
              compatible 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
              configuration.   This variable can only be set in the init file.

       nntp-cache-size size     (integer, default 10, maximum 10)
              Specifies the number of temporary files in the nntp cache.   The
              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
              earlier).   Only  set this if you have a large number of entries
              in your killfile that no longer work due to the  new  behaviour.
              Note  that  in  the  long run, this option will go away, so it’s
              best to update your killfile rather than set this.

       orig-to-include-mask N   (integer, default 3)
              When replying to an article, nn will include some of the  header
              lines  which  may be used to construct a proper mail address for
              the poster of the original article.  These addresses are  placed
              on  Orig-To: lines in the reply header and will automatically be
              removed 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
              constructed  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
              current article, else return to the menu.
              The value should be the sum of two values: one  for  the  action
              after  using  continue  on the last page of the article, and one
              for the 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
              {previous} will include articles read in the current  invocation
              of nn even if there are still unread articles in the group.

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

       print-header-type N (integer, default 1)
              Specifies what kind of header is printed by the :print  command,
              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
              handling (e.g. lp -s on System V).

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

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

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

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

       re-layout-read N    (integer, default -1)
              When the header-lines variable is not set, or contains  the  "*"
              field specifier, a line similar to the menu line will be used as
              the header  of  the  article  in  reading  mode,  including  the
              sender’s  name and the article’s subject.  When this variable is
              negative, the 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-
              layout used on the menu.

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

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

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

       repeat-group-query  (boolean, default false)
              When set, invoking nn with the -g option will always repeat  the
              query  for a group to enter until you quit explicitly.  (Same as
              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
              substitute 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
              article  is  saved  via  the O {save-short} command.  The fields
              specification is desctribed in the section on Customized Article
              Headers below.

       save-report    (boolean, default true)
              When  set,  a  message  reporting the number of lines written is
              shown after saving an article.  Since messages are shown  for  a
              few  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
              articles.

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

       shading-on code...  (control string, default not set)
              Specifies the escape code to be sent to the  terminal  to  cause
              "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
              helpful when using a slow link, since  the  data  can  often  be
              hundreds of KBytes long.

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

       silent         (boolean, default false)
              When set, nn won’t print the logo or "No News" if there  are  no
              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
              useful  on  slow terminals and modem lines to be able to see the
              first few lines of longer articles (and skipping the  rest  with
              the n command).

       subject-match-limit length    (integer, default 256)
              Subjects  will  be  considered  identical  if their first length
              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
              subject-match-offset has been applied.

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

       tidy-newsrc         (boolean, default false)
              When set, nn will automatically remove lines from .newsrc  which
              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
              contents of the "Path:" header will be used as the origin.

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

       visible-bell   (boolean, default true)
              When set, nn will flash the screen instead of "ringing the bell"
              if  the  visible  bell  (flash)  capability  is  defined  in the
              termcap/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
       containing the author, subject, and date (optional) of the article when
       it is read.

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

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

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

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

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

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

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

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

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

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

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

COMMAND LINE OPTIONS

       Some of the command line options have already been described, but below
       we  provide a complete list of the effect of each option by showing the
       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
       setting of the variables, with the ‘reverse’ effect in square brackets.

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

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

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

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

       -f   {toggle fsort}
              Do  not  [do] sort folders according to the subject (present the
              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
              contain a ‘/’ are looked for in the ~/.nn directory.   An  empty
              element in the list is interpreted as the global init file.  The
              list of init files must not be separated from the -I  option  by
              blanks,  and it must be the first option.  Example:  The default
              behaviour corresponds to using -I,init (first the  global  file,
              then  the file ~/.nn/init).  The global setup file is still read
              as the first init file independently of the -I option used.

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

       -lN  {set stop N}
              Stop after printing the first N lines of each article.  This  is
              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
       manual does not give a complete specification of all the input required
       by the various commands; it  is  recommended  to  execute  the  desired
       command  sequence  from the keyboard prior to defining the macro to get
       the exact requirements of each command.

       Although it is possible to define temporary macros interactively  using
       the  :define command, macro definitions are normally placed in the init
       file.  Macros are numbered from 0 to 100, i.e. it is possible to define
       a  total  of 101 different macros (implicit macros defined with the map
       command uses 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
              command  command  (normally  bound  to  the  :  key) can also be
              executed in a macro.  An extended command starts  with  a  colon
              (:) and continues to the end of the current line.  Example:
                   :show groups total

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

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

       Strings
              Input  to commands prompting for a string, e.g. a file name, can
              be specified in a macro as  a  double  quoted  string.   Example
              (save 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
              following form:
                   ?variable=value
              This conditional will be true (1) if the variable is an  integer
              variable whose current value is the one specified, or (2) if the
              variable is a boolean  variable  which  is  either  on  or  off.
              Examples:
                   ?layout=3 :set layout 1
                   ?monitor=on  break
                   ?sort=off :sort age

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

       return Terminate execution of current macro.  If the current  macro  is
              called  from  another  macro,  execution of that macro continues
              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.
              Example (confirm creation of new files):
                   save-short "+$G" yes

       no     Terminate execution of  current  macro  if  a  command  requires
              confirmation;  otherwise  ignore  it.   If neither yes nor no is
              specified when a command requires confirmation,  the  user  must
              answer  the  question as usual - if the user confirms the action
              execution continues 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
              desirable  (e.g.   if  the  macro goes from selection to reading
              mode), the redrawing of the prompt can be disabled  by  using  a
              prompt command with an empty string ("").  Example:
                   prompt "Enter reading mode?" # old prompt is saved
                   ?no return # and old prompt is restored
                   read-skip       # changes the prompt
                   prompt "" # so forget old prompt

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

       puts string-to-end-of-line
              The rest of the line is output directly to the terminal  without
              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
              article menu is shown.  The command to bind a key to  a  command
              in selection mode is:
                   map menu key command
              For  example,  to have the HOME key defined as multikey #0 above
              bound to the select command, the following command is used:
                   map menu #0 select
              To remap a key to select a specific article on the  menu  (which
              the  ‘a’  through  ‘z’  keys do by default), the command must be
              specified as ‘article N’ where N is the entry number on the menu
              counted  from  zero (i.e. a=0, b=1, ..., z=25, 0=26, ..., 9=35).
              For example, to map ‘J’ to select  article  ‘j’,  the  following
              command is used:
                   map menu J article 9

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

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

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

       Mapping keys in both modes
              Using the pseudo-keymap ‘both’, it is possible to map a key to a
              command in  both  selection  and  reading  mode  at  once.   For
              example,  to  map  the home key to macro number 5 in both modes,
              the following 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
              command:
                   map keymap key macro macro-number

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

       Keys and character names are specified using the following notation:

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

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

       125, 0175, 0x7D
              Characters  and  keys can be specified by their ordinal value in
              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
       conventions and restrictions and to satisfy each user’s personal taste.
       Normally, nn reads upto three init files on start-up if they exist (all
       init files are optional):

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

       $LIB/init
              Another system-wide (global) init file located  in  the  library
              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
              typically done in the setup file to enforce local policies.

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

       Macro Definitions
              You can define sequences of commands and key strokes  using  the
              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
              following command:
                   stop

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

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

       Command groups
              The init file can contain groups of commands which are  executed
              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).
              Example:
                   save-files
                     news*  +news/$L
                     comp.sources*  /u/src/$L/
                   end

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

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

COMMAND GROUPS

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

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

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

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

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

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

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

       on ‘‘ string...
              This is equivalent to the previous form except that  instead  of
              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
              identical to value of the TERM environment variable.

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

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

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

       on entry [ group list ]
              These commands (macro format!) are executed every time nn enters
              a  news  group.   If a group list is not specified, the commands
              are 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
              presentation sequence section.
              All ‘:’ commands at the  beginning  of  the  command  group  are
              executed  before nn collects the articles in the group, so it is
              possible to set or unset variables  like  cross-post  and  auto-
              read-mode-limit  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
              commands  (i.e. non-‘:’ commands) will not be executed until the
              first group is shown (it works like an entry macro).

GROUP PRESENTATION SEQUENCE

       News groups are normally presented  in  the  sequence  defined  in  the
       system-wide init file in nn’s library directory.

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

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

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

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

       Each  group  name  may be followed by a file or folder name (must start
       with either of ‘/’ ‘~’ or ‘+’) which will specify the default save file
       for  that  group (and its subgroups).  A single ‘+’ following the group
       name is an 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
       associated  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
              subgroups of the group will be included as well  (if  there  are
              any).  Examples: "comp", "comp.unix", "comp.unix.questions".  If
              the group does not exits (e.g.  "comp"), the subgroups  will  be
              included  even  when  also-subgroups  is not set, i.e. "comp" is
              equivalent to "comp.".

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

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

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

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

       ! groups
              Completely  ignore the group or groups specified unless they are
              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
              presentation sequence, i.e. they do not  include  the  remaining
              groups at this point; that must be done explicitly elsewhere.

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

       !:X groups
              Ignore  unsubscribed  and  new  groups,  i.e.  if  they  are not
              currently present and subscribed in .newsrc.  This is useful  to
              ignore  a  whole  hierarchy  except  for  a few groups which are
              explicitly mentioned in .newsrc.  New groups  in  the  hierarchy
              are ignored unless ‘NEW’ 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
              created in the hierarchy (it might become interesting some day).
              Individual groups can still be included in the sequence if  they
              are specified before the ‘!:O’ entry.

       !:N groups
              Ignore new groups in the hierarchy.

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

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

       RC     This  is  a pseudo group name which matches all groups occurring
              in the .newsrc file.  It will cause the groups in .newsrc to  be
              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
              presentation  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
       composing mail.  nn knows about the following  editors:  vi,  ded,  GNU
       emacs,  and  micro-emacs,  and  will  try to position the cursor on the
       first line following the header, i.e. after the blank line  which  must
       not  be deleted!  If an article has been included, the cursor is placed
       on the first line of the included text (to allow you to delete sections
       easily).

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

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

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

       TERM.  The terminal type.

NOTES

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

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

FILES

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

SEE ALSO

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

ORIGINAL AUTHOR

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

CURRENT MAINTAINER

       Michael T Pins mtpins@nndev.org

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

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