gnus: Summary Buffer Lines

 
 3.1.1 Summary Buffer Lines
 --------------------------
 
 You can change the format of the lines in the summary buffer by changing
 the ‘gnus-summary-line-format’ variable.  It works along the same lines
 as a normal ‘format’ string, with some extensions (SeeFormatting
 Variables).
 
    There should always be a colon or a point position marker on the
 line; the cursor always moves to the point position marker or the colon
 after performing an operation.  (Of course, Gnus wouldn’t be Gnus if it
 wasn’t possible to change this.  Just write a new function
 ‘gnus-goto-colon’ which does whatever you like with the cursor.)  See
 Positioning Point.
 
    The default string is ‘%U%R%z%I%(%[%4L: %-23,23f%]%) %s\n’.
 
    The following format specification characters and extended format
 specification(s) are understood:
 
 ‘N’
      Article number.
 ‘S’
      Subject string.  List identifiers stripped,
      ‘gnus-list-identifiers’.  SeeArticle Hiding.
 ‘s’
      Subject if the article is the root of the thread or the previous
      article had a different subject, ‘gnus-summary-same-subject’
      otherwise.  (‘gnus-summary-same-subject’ defaults to ‘""’.)
 ‘F’
      Full ‘From’ header.
 ‘n’
      The name (from the ‘From’ header).
 ‘f’
      The name, ‘To’ header or the ‘Newsgroups’ header (SeeTo From
      Newsgroups).
 ‘a’
      The name (from the ‘From’ header).  This differs from the ‘n’ spec
      in that it uses the function designated by the
      ‘gnus-extract-address-components’ variable, which is slower, but
      may be more thorough.
 ‘A’
      The address (from the ‘From’ header).  This works the same way as
      the ‘a’ spec.
 ‘L’
      Number of lines in the article.
 ‘c’
      Number of characters in the article.  This specifier is not
      supported in some methods (like nnfolder).
 ‘k’
      Pretty-printed version of the number of characters in the article;
      for example, ‘1.2k’ or ‘0.4M’.
 ‘I’
      Indentation based on thread level (SeeCustomizing Threading).
 ‘B’
      A complex trn-style thread tree, showing response-connecting trace
      lines.  A thread could be drawn like this:
 
           >
           +->
           | +->
           | | \->
           | |   \->
           | \->
           +->
           \->
 
      You can customize the appearance with the following options.  Note
      that it is possible to make the thread display look really neat by
      replacing the default ASCII characters with graphic line-drawing
      glyphs.
      ‘gnus-sum-thread-tree-root’
           Used for the root of a thread.  If ‘nil’, use subject instead.
           The default is ‘> ’.
 
      ‘gnus-sum-thread-tree-false-root’
           Used for the false root of a thread (SeeLoose Threads).
           If ‘nil’, use subject instead.  The default is ‘> ’.
 
      ‘gnus-sum-thread-tree-single-indent’
           Used for a thread with just one message.  If ‘nil’, use
           subject instead.  The default is ‘’.
 
      ‘gnus-sum-thread-tree-vertical’
           Used for drawing a vertical line.  The default is ‘| ’.
 
      ‘gnus-sum-thread-tree-indent’
           Used for indenting.  The default is ‘ ’.
 
      ‘gnus-sum-thread-tree-leaf-with-other’
           Used for a leaf with brothers.  The default is ‘+-> ’.
 
      ‘gnus-sum-thread-tree-single-leaf’
           Used for a leaf without brothers.  The default is ‘\-> ’
 
 ‘T’
      Nothing if the article is a root and lots of spaces if it isn’t (it
      pushes everything after it off the screen).
 ‘[’
      Opening bracket, which is normally ‘[’, but can also be ‘<’ for
      adopted articles (SeeCustomizing Threading).
 ‘]’
      Closing bracket, which is normally ‘]’, but can also be ‘>’ for
      adopted articles.
 ‘>’
      One space for each thread level.
 ‘<’
      Twenty minus thread level spaces.
 ‘U’
      Unread.  SeeRead Articles.
 
 ‘R’
      This misleadingly named specifier is the “secondary mark”.  This
      mark will say whether the article has been replied to, has been
      cached, or has been saved.  SeeOther Marks.
 
 ‘i’
      Score as a number (SeeScoring).
 ‘z’
      Zcore, ‘+’ if above the default level and ‘-’ if below the default
      level.  If the difference between ‘gnus-summary-default-score’ and
      the score is less than ‘gnus-summary-zcore-fuzz’, this spec will
      not be used.
 ‘V’
      Total thread score.
 ‘x’
      ‘Xref’.
 ‘D’
      ‘Date’.
 ‘d’
      The ‘Date’ in ‘DD-MMM’ format.
 ‘o’
      The ‘Date’ in YYYYMMDD‘T’HHMMSS format.
 ‘M’
      ‘Message-ID’.
 ‘r’
      ‘References’.
 ‘t’
      Number of articles in the current sub-thread.  Using this spec will
      slow down summary buffer generation somewhat.
 ‘e’
      An ‘=’ (‘gnus-not-empty-thread-mark’) will be displayed if the
      article has any children.
 ‘P’
      The line number.
 ‘O’
      Download mark.
 ‘*’
      Desired cursor position (instead of after first colon).
 ‘&user-date;’
      Age sensitive date format.  Various date format is defined in
      ‘gnus-user-date-format-alist’.
 ‘u’
      User defined specifier.  The next character in the format string
      should be a letter.  Gnus will call the function
      ‘gnus-user-format-function-X’, where X is the letter following
      ‘%u’.  The function will be passed the current header as argument.
      The function should return a string, which will be inserted into
      the summary just like information from any other summary specifier.
 
    Text between ‘%(’ and ‘%)’ will be highlighted with ‘gnus-mouse-face’
 when the mouse point is placed inside the area.  There can only be one
 such area.
 
    The ‘%U’ (status), ‘%R’ (replied) and ‘%z’ (zcore) specs have to be
 handled with care.  For reasons of efficiency, Gnus will compute what
 column these characters will end up in, and “hard-code” that.  This
 means that it is invalid to have these specs after a variable-length
 spec.  Well, you might not be arrested, but your summary buffer will
 look strange, which is bad enough.
 
    The smart choice is to have these specs as far to the left as
 possible.  (Isn’t that the case with everything, though?  But I
 digress.)
 
    This restriction may disappear in later versions of Gnus.