% include file for the Gnus refcard and booklet
-\def\progver{5.0}\def\refver{5.0} % program and refcard versions
-\def\date{16 September 1995}
-\def\author{Vladimir Alexiev $<$vladimir@cs.ualberta.ca$>$}
-\raggedbottom\raggedright
-\newlength{\logowidth}\setlength{\logowidth}{6.861in}
-\newlength{\logoheight}\setlength{\logoheight}{7.013in}
\newlength{\keycolwidth}
\newenvironment{keys}[1]% #1 is the widest key
{\nopagebreak%\noindent%
\addtolength{\keycolwidth}{-\columnwidth}%
\begin{tabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}%
{\end{tabular}\\}
-\catcode`\^=12 % allow ^ to be typed literally
-\newcommand{\B}[1]{{\bf#1})} % bold l)etter
-\def\Title{
+% uncomment the first definition if you do not want pagebreaks in maps
+%\newcommand{\esamepage}{\samepage}
+\newcommand{\esamepage}{}
+
+\newcommand*{\B}[1]{{\bf#1})} % bold l)etter
+
+\newcommand{\Title}{%
\begin{center}
{\bf\LARGE Gnus \progver\ Reference \Guide\\}
%{\normalsize \Guide\ version \refver}
\end{center}
}
-\newcommand\Logo[1]{\centerline{
+\newcommand*{\Logo}[1]{\centerline{%
\makebox[\logoscale\logowidth][l]{\vbox to \logoscale\logoheight
{\vfill\special{psfile=gnuslogo.#1}}\vspace{-\baselineskip}}}}
-\def\CopyRight{
+\newcommand{\Copyright}{%
\begin{center}
Copyright \copyright\ 1995 Free Software Foundation, Inc.\\*
Copyright \copyright\ 1995 \author.\\*
+Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\*
Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne
Ingebrigtsen.\\*
and the Emacs Help Bindings feature (C-h b).\\*
Permission is granted to make and distribute copies of this reference
\guide{} provided the copyright notice and this permission are preserved on
all copies. Please send corrections, additions and suggestions to the
-above email address. \Guide{} last edited on \date.
+current maintainer's email address. \Guide{} last edited on \date.
}
-\def\Notes{
-\subsec{Notes}
-{\samepage
+\newcommand{\Notes}{%
+\subsection*{Notes}
+{\esamepage
Gnus is complex. Currently it has some 346 interactive (user-callable)
functions. Of these 279 are in the two major modes (Group and
Summary/Article). Many of these functions have more than one binding, some
commands will also set the default level.
\quad [score] An article score. If no prefix is given,
-`gnus-summary-default-score' is used.
-%Some functions were not yet documented at the time of creating this
-%\guide and are clearly indicated as such.
-\\*[\baselineskip]
+`gnus-summary-default-score' is used. \\*[\baselineskip]
+% some keys
\begin{keys}{C-c C-i}
+M-x gnus & start Gnus. \\
+M-x gnus-no-server & start Gnus without trying to contact server. \\
C-c C-i & Go to the Gnus online {\bf info}.\\
C-c C-b & Send a Gnus {\bf bug} report.\\
\end{keys}
}}
-\def\GroupLevels{
-\subsec{Group Subscribedness Levels}
+\newcommand{\GroupLevels}{%
The table below assumes that you use the default Gnus levels.
Fill your user-specific levels in the blank cells.\\[1\baselineskip]
-
\begin{tabular}{|c|l|l|}
\hline
Level & Groups & Status \\
\hline
-1 & mail groups & \\
-2 & mail groups & \\
-3 & & subscribed \\
-4 & & \\
-5 & default list level & \\
+1 & draft/mail groups & \\
+2 & mail groups & \\
+3 & & subscribed \\
+4 & & \\
+5 & default list level & \\
\hline
-6 & & unsubscribed \\
-7 & & \\
+6 & & unsubscribed \\
+7 & & \\
\hline
-8 & & zombies \\
+8 & & zombies \\
\hline
-9 & & killed \\
+9 & & killed \\
\hline
-\end{tabular}
-}
+\end{tabular}}
-\def\Marks{
-\subsec{Mark Indication Characters}
-{\samepage If a command directly sets a mark, it is shown in parentheses.\\*
+\newcommand{\MarkCharacters}{%
+{\esamepage If a command directly sets a mark, it is shown in parentheses.\\*
\newlength{\markcolwidth}
\settowidth{\markcolwidth}{` '}% widest character
\addtolength{\markcolwidth}{4\tabcolsep}
` ' & (M-u, M SPC, M c) Not read.\\
! & (!, M !, M t) Ticked (interesting).\\
? & (?, M ?) Dormant (only followups are interesting).\\
-C & (C, S c) {\bf Canceled} (only for your own articles).\\
E & (E, M e, M x) {\bf Expirable}. Only has effect in mail groups.\\
+G & (C, B DEL) Canceled article (or deleted in mailgroups).\\
\hline\hline
\multicolumn{2}{|p{\markdblcolwidth}|}{The marks below mean that the article
is read (killed, uninteresting), and have more or less the same effect.
\hline
r & (d, M d, M r) Deleted (marked as {\bf read}).\\
C & (M C; M C-c; M H; c, Z c; Z n; Z C) Killed by {\bf catch-up}.\\
-O & {\bf Old} (marked read in a previous session).\\
+F & SOUPed article. See the manual.\\
+O & {\bf Old} (read in a previous session).\\
K & (k, M k; C-k, M K) {\bf Killed}.\\
+M & Article marked as read by duplicate suppression.\\
+Q & Article is part of a sparse thread (see ``Threading'' in the manual).\\
R & {\bf Read} (viewed in actuality).\\
X & Killed by a kill file.\\
Y & Killed due to low score.\\
\hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline
-\multicolumn{2}{|p{\markdblcolwidth}|}{{\bf Other marks}}\\
+\multicolumn{2}{|p{\markdblcolwidth}|}{{\bf Marks not affecting visibility}}\\
\hline
-\# & (\#, M \#, M P p) Processable (will be affected by the next operation).\\
-A & {\bf Answered} (followed-up or replied).\\
-+ & Over default score.\\
-$-$ & Under default score.\\
-= & Has children (thread underneath it). Add `\%e' to
- `gnus-summary-line-format'.\\
+\# & (\#, M \#, M P p) Processable (will be affected by the next operation).
+[2]\\
+A & {\bf Answered} (followed-up or replied). [2]\\
+* & Cached. [2]\\
+S & Saved. [2]\\
++ & Over default score. [3]\\
+$-$ & Under default score. [3]\\
+$=$ & Has children (thread underneath it). Add `\%e' to
+`gnus-summary-line-format'. [3]\\
\hline
\end{tabular}
}}
-\def\GroupMode{
-\sec{Group Mode}
+\newcommand{\GroupModeGeneral}{%
\begin{keys}{C-c M-C-x}
-RET & (=) Select this group. [Prefix: how many (read) articles to fetch.
-Positive: newest articles, negative: oldest ones.]\\
-SPC & Select this group and display the first unread article. [Same
-prefix as above.]\\
+RET & (=) Enter this group. [Prefix: how many (read) articles to fetch.
+Positive: newest articles, negative: oldest ones; non-numerical: fetch all articles, not just unread]\\
+M-RET & Enter group quickly.\\
+M-SPC & Same as RET but does not expunge and hide dormants.\\
+M-C-RET & Enter group without any processing, changes will not be permanent.\\
+SPC & Select this group and display the first (unread) article. [Same
+prefix as above.]\\
? & Give a very short help message.\\
$<$ & Go to the beginning of the Group buffer.\\
$>$ & Go to the end of the Group buffer.\\
, & Jump to the lowest-level group with unread articles.\\
. & Jump to the first group with unread articles.\\
-^ & Enter the Server buffer mode.\\
+xx & Enter the Server buffer mode.\\
a & Post an {\bf article} to a group.\\
b & Find {\bf bogus} groups and delete them.\\
c & Mark all unticked articles in this group as read ({\bf catch-up}).
[p/p]\\
g & Check the server for new articles ({\bf get}). [level]\\
+M-g & Check the server for new articles in this group ({\bf get}). [p/p]\\
j & {\bf Jump} to a group.\\
m & {\bf Mail} a message to someone.\\
n & Go to the {\bf next} group with unread articles. [distance]\\
+M-n & Go to the {\bf next} group on the same or lower level.
+[distance]\\
p & (DEL) Go to the {\bf previous} group with unread articles.
[distance]\\
+M-p & Go to the {\bf previous} group on the same or lower level. [distance]\\
q & {\bf Quit} Gnus.\\
-r & Read the init file ({\bf reset}).\\
+r & Re-read the init file ({\bf reset}).\\
s & {\bf Save} the `.newsrc.eld' file (and `.newsrc' if
`gnus-save-newsrc-file').\\
z & Suspend (kill all buffers of) Gnus.\\
P & Go to the {\bf previous} group. [distance]\\
Q & {\bf Quit} Gnus without saving any startup (.newsrc) files.\\
R & {\bf Restart} Gnus.\\
-V & Display the Gnus {\bf version} number.\\
Z & Clear the dribble buffer.\\
-C-c C-d & Show the {\bf description} of this group. [Prefix: re-read it
-from the server.]\\
+M-c & Clear data from group (marks and list of read articles). \\
C-c C-s & {\bf Sort} the groups by name, number of unread articles, or level
(depending on `gnus-group-sort-function').\\
C-c C-x & Run all expirable articles in this group through the {\bf expiry}
process.\\
C-c M-C-x & Run all articles in all groups through the {\bf expiry} process.\\
+C-c M-g & Activate all {\bf groups}.\\
+C-c C-i & Gnus online-manual ({\bf info}).\\
C-x C-t & {\bf Transpose} two groups.\\
-M-d & {\bf Describe} ALL groups. [Prefix: re-read the description from the
-server.]\\
-M-f & Fetch this group's {\bf FAQ} (using ange-ftp).\\
-M-g & Check the server for new articles in this group ({\bf get}). [p/p]\\
-M-n & Go to the {\bf previous} unread group on the same or lower level.
-[distance]\\
-M-p & Go to the {\bf next} unread group on the same or lower level.
-[distance]\\
+H f & Fetch this group's {\bf FAQ} (using ange-ftp).\\
+H v & (V) Display the Gnus {\bf version} number.\\
+H d & (C-c C-d) Show the {\bf description} of this group
+[Prefix: re-read from server].\\
+M-d & {\bf Describe} all groups. [Prefix: re-read from server]\\
\end{keys}
}
-\def\GroupCommands{
-\subsec{List Groups}
-{\samepage
-\begin{keys}{A m}
-A a & (C-c C-a) List all groups whose names match a regexp ({\bf
-apropos}).\\
+\newcommand{\ListGroups}{%
+{\esamepage
+\begin{keys}{A M}
A d & List all groups whose names or {\bf descriptions} match a regexp.\\
-A k & (C-c C-l) List all {\bf killed} groups.\\
-A m & List groups that {\bf match} a regexp and have unread articles.
-[level]\\
-A s & (l) List {\bf subscribed} groups with unread articles. [level]\\
-A u & (L) List all groups (including {\bf unsubscribed}). [If no prefix
-is given, level 7 is the default]\\
-A z & List the {\bf zombie} groups.\\
+A k & (C-c C-l) List all {\bf killed} groups.
+[Prefix: look at active-file from server]\\
+A l & List all groups on a specific level.
+[Prefix: also list groups with no unread articles]\\
+A d & List all groups that have names or {\bf descriptions} matching
+a regexp.\\
+A a & (C-c C-a) List all groups whose names match a regexp
+({\bf apropos}).\\
+A A & List the server's active-file.\\
A M & List groups that {\bf match} a regexp.\\
+A m & List groups that {\bf match} a regexp and have unread articles.
+[level]\\
+A s & (l) List all {\bf subscribed} groups with unread articles.
+[level, 5 and lower is the default]\\
+A u & (L) List all groups (including read and {\bf unsubscribed}).
+[level, 7 and lower is the default]\\
+A z & List all {\bf zombie} groups.\\
\end{keys}
}
-\subsec{Create/Edit Foreign Groups}
-{\samepage
+\newcommand{\CreateEditGroups}{%
+{\esamepage
The select methods are indicated in parentheses.\\*
-\begin{keys}{G m}
+\begin{keys}{G DEL}
G a & Make the Gnus list {\bf archive} group. (nndir over ange-ftp)\\
+G c & {\bf Customize} this group's parameters.\\
G d & Make a {\bf directory} group (every file must be a posting and files
must have numeric names). (nndir)\\
+G D & Enter a {\bf directory} as a (temporary) group.
+(nneething without recording articles read)\\
G e & (M-e) {\bf Edit} this group's select method.\\
+G E & {\bf Edit} this group's info (select method, articles read, etc).\\
G f & Make a group based on a {\bf file}. (nndoc)\\
G h & Make the Gnus {\bf help} (documentation) group. (nndoc)\\
G k & Make a {\bf kiboze} group. (nnkiboze)\\
G m & {\bf Make} a new group.\\
G p & Edit this group's {\bf parameters}.\\
+G r & Rename this group (does not work with read-only groups!).\\
+G u & Create one of the groups mentioned in gnus-{\bf useful}-groups.\\
G v & Add this group to a {\bf virtual} group. [p/p]\\
-G D & Enter a {\bf directory} as a (temporary) group. (nneething without
-recording articles read.)\\
-G E & {\bf Edit} this group's info (select method, articles read, etc).\\
G V & Make a new empty {\bf virtual} group. (nnvirtual)\\
+G w & Create ephemeral group based on web-search. [Prefix: make solid group
+instead]\\
+G DEL & {\bf Delete} group [Prefix: delete all articles as well].\\
\end{keys}
You can also create mail-groups and read your mail with Gnus (very useful
-if you are subscribed to any mailing lists), using one of the methods
+if you are subscribed to mailing lists), using one of the methods
nnmbox, nnbabyl, nnml, nnmh, or nnfolder. Read about it in the online info
(C-c C-i g Reading Mail RET).
-}
-
-%\subsubsec{Soup Commands}
-%\begin{keys}{G s w}
-%G s b & gnus-group-brew-soup: not documented.\\
-%G s p & gnus-soup-pack-packet: not documented.\\
-%G s r & nnsoup-pack-replies: not documented.\\
-%G s s & gnus-soup-send-replies: not documented.\\
-%G s w & gnus-soup-save-areas: not documented.\\
-%\end{keys}
+}}
-\subsec{Mark Groups}
+% TODO:
+\newcommand{\SoupCommands}{%
+\begin{keys}{G s w}
+G s b & gnus-group-brew-soup: not documented.\\
+G s p & gnus-soup-pack-packet: not documented.\\
+G s r & nnsoup-pack-replies: not documented.\\
+G s s & gnus-soup-send-replies: not documented.\\
+G s w & gnus-soup-save-areas: not documented.\\
+\end{keys}}
+
+\newcommand{\MarkGroups}{%
\begin{keys}{M m}
M m & (\#) Set the process {\bf mark} on this group. [scope]\\
+M r & Mark all groups matching regular expression.\\
M u & (M-\#) Remove the process mark from this group ({\bf unmark}).
[scope]\\
+M U & Remove the process mark from all groups (\textbf{umark all}).\\
M w & Mark all groups in the current region.\\
-\end{keys}
-
-\subsec{Unsubscribe, Kill and Yank Groups}
-\begin{keys}{S w}
+\end{keys}}
+
+\newcommand{\GroupTopicsGeneral}{%
+{\esamepage
+Topics are ``categories'' for groups. Press t in the group-buffer to
+toggle gnus-topic-mode (C-c C-i g Group Topics RET).
+\begin{keys}{C-c C-x}
+T n & Prompt for topic {\bf name} and create it.\\
+T m & {\bf Move} the current group to some other topic [p/p].\\
+T j & {\bf Jump} to a topic.\\
+T c & {\bf Copy} the current group to some other topic [p/p].\\
+T D & Remove (not delete) the current group [p/p].\\
+T M & {\bf Move} all groups matching a regexp to a topic.\\
+T C & {\bf Copy} all groups matching a regexp to a topic.\\
+T H & Toggle {\bf hiding} of empty topics.\\
+T r & {\bf Rename} a topic.\\
+T DEL & Delete an empty topic.\\
+T \# & Mark all groups in the current topic with the process-mark.\\
+T M-\# & Remove the process-mark from all groups in the current topic.\\
+T TAB & (TAB) Indent current topic [Prefix: unindent].\\
+M-TAB & Unindent the current topic.\\
+RET & (SPC) Either unfold topic or enter group [level].\\
+C-c C-x & Expire all articles in current group or topic.\\
+C-k & {\bf Kill} a group or topic.\\
+C-y & {\bf Yank} a group or topic.\\
+A T & List active-file using {\bf topics}.\\
+G p & Edit topic-{\bf parameters}.\\
+\end{keys}}}
+
+\newcommand{\TopicSorting}{%
+{\esamepage
+\begin{keys}{T S m}
+T S a & Sort {\bf alphabetically}.\\
+T S u & Sort by number of {\bf unread} articles.\\
+T S l & Sort by group {\bf level}.\\
+T S v & Sort by group score ({\bf value}).\\
+T S r & Sort by group {\bf rank}.\\
+T S m & Sort by {\bf method}.\\
+\end{keys}}}
+
+\newcommand{\SubscribeKillYankGroups}{%
+{\esamepage
+\begin{keys}{S C-k}
S k & (C-k) {\bf Kill} this group.\\
S l & Set the {\bf level} of this group. [p/p]\\
S s & (U) Prompt for a group and toggle its {\bf subscription}.\\
S w & (C-w) Kill all groups in the region.\\
S y & (C-y) {\bf Yank} the last killed group.\\
S z & Kill all {\bf zombie} groups.\\
-\end{keys}
-}
+S C-k & Kill all groups on a certain level.\\
+\end{keys}}}
-\def\SummaryMode{
-\sec{Summary Mode} %{Summary and Article Modes}
-\begin{keys}{SPC}
+\newcommand{\SummaryModeGeneral}{%
+{\esamepage
+\begin{keys}{M-RET}
SPC & (A SPC, A n) Select an article, scroll it one page, move to the
next one.\\
DEL & (A DEL, A p, b) Scroll this article one page back. [distance]\\
RET & Scroll this article one line forward. [distance]\\
-= & Expand the Summary window. [Prefix: shrink it to display the
-Article window]\\
-$<$ & (A $<$, A b) Scroll to the beginning of this article.\\
-$>$ & (A $>$, A e) Scroll to the end of this article.\\
-\& & Execute a command on all articles matching a regexp.
-[Prefix: move backwards.]\\
-j & (G g) Ask for an article number and then {\bf jump} to that summary
-line.\\
-C-t & Toggle {\bf truncation} of summary lines.\\
+M-RET & Scroll this article one line backward. [distance]\\
+= & Expand the Summary window (fullsize).
+[Prefix: shrink to display article window]\\
+%
+\& & Execute a command on all articles whose header matches a regexp.
+[Prefix: move backwards]\\
M-\& & Execute a command on all articles having the process mark.\\
-M-k & Edit this group's {\bf kill} file.\\
+%
M-n & (G M-n) Go to the {\bf next} summary line of an unread article.
[distance]\\
M-p & (G M-p) Go to the {\bf previous} summary line of an unread article.
[distance]\\
-M-r & Search through all previous articles for a regexp.\\
M-s & {\bf Search} through all subsequent articles for a regexp.\\
+M-r & Search through all previous articles for a regexp.\\
+%
+A P & {\bf Postscript}-print current buffer.\\
+%
+M-k & Edit this group's {\bf kill} file.\\
M-K & Edit the general {\bf kill} file.\\
-\end{keys}
-}
-
-\def\SortSummary{
-\subsec{Sort the Summary Buffer}
-\begin{keys}{C-c C-s C-a}
-C-c C-s C-a & Sort the summary by {\bf author}.\\
-C-c C-s C-d & Sort the summary by {\bf date}.\\
-C-c C-s C-i & Sort the summary by article score.\\
-C-c C-s C-n & Sort the summary by article {\bf number}.\\
-C-c C-s C-s & Sort the summary by {\bf subject}.\\
-\end{keys}
-}
-
-\def\Asubmap{
-\subsec{Article Buffer Commands}
-\begin{keys}{A m}
-A g & (g) (Re)fetch this article ({\bf get}). [Prefix: just show the
-article.]\\
-A r & (^, A ^) Go to the parent of this article (the {\bf References}
-header).\\
-M-^ & Fetch the article with a given Message-ID.\\
+%
+C-t & Toggle {\bf truncation} of summary lines.\\
+Y g & Regenerate the summary-buffer.\\
+Y c & Insert all cached articles into the summary-buffer.\\
+%
+M-C-e & {\bf Edit} the group-parameters.\\
+M-C-g & Customize the group-parameters.\\
+%
+% article handling
+%
+A $<$ & ($<$, A b) Scroll to the beginning of this article.\\
+A $>$ & ($>$, A e) Scroll to the end of this article.\\
A s & (s) Perform an i{\bf search} in the article buffer.\\
-A D & (C-d) Un{\bf digestify} this article into a separate group.\\
-\end{keys}
-}
-
-\def\Bsubmap{
-\subsec{Mail-Group Commands}
-{\samepage
+%
+A D & (C-d) Un{\bf digestify} this article into a separate group.
+[Prefix: force digest]\\
+M-C-d & Like C-d, but open several documents in nndoc-groups, wrapped
+in an nnvirtual group [p/p]\\
+%
+A g & (g) (Re)fetch this article ({\bf get}). [Prefix: get raw version]\\
+A r & (\^{}, A \^{}) Fetch the parent(s) of this article.
+[Prefix: if positive fetch \textit{n} ancestors;
+negative: fetch only the \textit{n}th ancestor]\\
+A t & {\bf Translate} this article.\\
+A R & Fetch all articles mentioned in the {\bf References}-header.\\
+A T & Fetch full \textbf{thread} in which the current article appears.\\
+M-\^{} & Fetch the article with a given Message-ID.\\
+S y & {\bf Yank} the current article into an existing message-buffer.
+[p/p]\\
+\end{keys}}}
+
+\newcommand{\MIMESummary}{%
+{\esamepage
+For the commands operating on one MIME part (a subset of gnus-article-*), a
+prefix selects which part to operate on. If the point is placed over a
+MIME button in the article buffer, use the corresponding bindings for the
+article buffer instead.
+\begin{keys}{W M w}
+K v & (b) {\bf View} the MIME-part.\\
+K o & {\bf Save} the MIME part.\\
+K c & {\bf Copy} the MIME part.\\
+K e & View the MIME part {\bf externally}.\\
+K i & View the MIME part {\bf internally}.\\
+K $\mid$ & Pipe the MIME part to an external command.\\
+K b & Make all the MIME parts have buttons in front of them.\\
+K m & Try to repair {\bf multipart-headers}.\\
+X m & Save all parts matching a MIME type to a directory. [p/p]\\
+M-t & Toggle the buttonized display of the article buffer.\\
+W M w & Decode RFC2047-encoded words in the article headers.\\
+W M c & Decode encoded article bodies. [Prefix: prompt for charset]\\
+W M v & View all MIME parts in the current article.\\
+\end{keys}}}
+
+\newcommand{\SortSummary}{%
+{\esamepage
+\begin{keys}{C-c C-s C-a}
+C-c C-s C-a & Sort the summary-buffer by {\bf author}.\\
+C-c C-s C-d & Sort the summary-buffer by {\bf date}.\\
+C-c C-s C-i & Sort the summary-buffer by article score.\\
+C-c C-s C-l & Sort the summary-buffer by amount of lines.\\
+C-c C-s C-c & Sort the summary-buffer by length.\\
+C-c C-s C-n & Sort the summary-buffer by article {\bf number}.\\
+C-c C-s C-s & Sort the summary-buffer by {\bf subject}.\\
+\end{keys}}}
+
+\newcommand{\MailGroups}{% formerly \Bsubmap
+{\esamepage
These commands (except `B c') are only valid in a mail group.\\*
\begin{keys}{B M-C-e}
-B DEL & {\bf Delete} the mail article from disk (!). [p/p]\\
+B DEL & (B backspace, B delete) {\bf Delete} the mail article from disk (!).
+[p/p]\\
+B B & Crosspost this article to another group.\\
B c & {\bf Copy} this article from any group to a mail group. [p/p]\\
B e & {\bf Expire} all expirable articles in this group. [p/p]\\
B i & {\bf Import} a random file into this group.\\
B m & {\bf Move} the article from one mail group to another. [p/p]\\
-B q & {\bf Query} where will the article go during fancy splitting\\
+B p & Query whether the article was posted as well.\\
+B q & {\bf Query} where the article will end up after fancy splitting\\
B r & {\bf Respool} this mail article. [p/p]\\
+B t & {\bf Trace} the fancy splitting patterns applied to this article.\\
B w & (e) Edit this article.\\
B M-C-e & {\bf Expunge} (delete from disk) all expirable articles in this group
(!). [p/p]\\
-\end{keys}
-}}
-
-\def\Gsubmap{
-\subsec{Select Articles}
-{\samepage
+\end{keys}}}
+
+\newcommand{\DraftGroup}{% formerly \Dsubmap
+{\esamepage
+The ``drafts''-group contains messages that have been saved but not sent
+and rejected articles. \\*
+\begin{keys}{B DEL}
+D e & {\bf edit} message in draft group.\\
+B DEL & \textbf{Delete} message (like in mailgroup).\\
+\end{keys}}}
+
+\newcommand{\SelectArticles}{% formerly \Gsubmap
+{\esamepage
These commands select the target article. They do not understand the prefix.\\*
\begin{keys}{G C-n}
+h & Enter article-buffer.\\
G b & (,) Go to the {\bf best} article (the one with highest score).\\
G f & (.) Go to the {\bf first} unread article.\\
-G l & (l) Go to the {\bf last} article read.\\
G n & (n) Go to the {\bf next} unread article.\\
-p & Go to the {\bf previous} unread article.\\
-G p & {\bf Pop} an article off the summary history and go to it.\\
+G p & (p) Go to the {\bf previous} unread article.\\
+%
G N & (N) Go to {\bf the} next article.\\
G P & (P) Go to the {\bf previous} article.\\
+%
G C-n & (M-C-n) Go to the {\bf next} article with the same subject.\\
G C-p & (M-C-p) Go to the {\bf previous} article with the same subject.\\
+%
+G l & (l) Go to the previously read article ({\bf last-read-article}).\\
+G o & Pop an article off the summary history and go to it.\\
+%
+G g & Search an article via subject.\\
+G j & (j) Search an article via Message-Id or subject.\\
+\end{keys}}}
+
+\newcommand{\ArticleModeGeneral}{%
+{\esamepage
+The normal navigation keys work in Article mode. Some additional keys are:\\*
+\begin{keys}{C-c RET}
+C-c \^{} & Get the article with the Message-ID near point.\\
+C-c RET & Send reply to address near point.\\
+h & Go to the \textbf{header}-line of the article in the
+summary-buffer.\\
+s & Go to \textbf{summary}-buffer.\\
+RET & (middle mouse button) Activate the button at point to follow
+an URL or Message-ID.\\
+TAB & Move the point to the next button.\\
+M-TAB & Move point to previous button.\\
+\end{keys}}}
+
+\newcommand{\WashArticle}{% formerly \Wsubmap
+{\esamepage
+\begin{keys}{W W H}
+W b & Make Message-IDs and URLs in the article mouse-clickable
+{\bf buttons}.\\
+W l & (w) Remove page breaks ({\bf\^{}L}) from the article.\\
+W c & Translate CRLF-pairs to LF and then the remaining CR's to LF's.\\
+W d & Treat {\bf dumbquotes}.\\
+W f & Look for and display any X-{\bf Face} headers.\\
+W m & Toggle {\bf MIME} processing.\\
+W o & Treat {\bf overstrike} or underline (\^{}H\_) in the article.\\
+W q & Treat {\bf quoted}-printable in the article.\\
+W r & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\
+W t & (t) {\bf Toggle} display of all headers.\\
+W v & (v) Toggle permanent {\bf verbose} displaying of all headers.\\
+W w & Do word {\bf wrap} in the article.\\
+W B & Add clickable {\bf buttons} to the article headers.\\
+W C & {\bf Capitalize} first word in each sentence.\\
+W Q & Fill long lines.\\
+%
+W W H & Strip certain {\bf headers} from body.\\
+%
+W E l & Strip blank {\bf lines} from the beginning of the article.\\
+W E m & Replace blank lines with empty lines and remove {\bf multiple}
+blank lines.\\
+W E t & Remove {\bf trailing} blank lines.\\
+W E a & Strip blank lines at the beginning and the end
+(W E l, W E m and W E t).\\
+W E A & Strip {\bf all} blank lines.\\
+W E s & Strip leading blank lines from the article body.\\
+W E e & Strip trailing blank lines from the article body.\\
+%
+W T u & (W T z) Display the article timestamp in GMT ({\bf UT, ZULU}).\\
+W T i & Display the article timestamp in {\bf ISO} 8601.\\
+W T l & Display the article timestamp in the {\bf local} timezone.\\
+W T s & Display according to `gnus-article-time-format'.\\
+W T e & Display the time {\bf elapsed} since it was sent.\\
+W T o & Display the {\bf original} timestamp.\\
+\end{keys}}}
+
+\newcommand{\HideHighlightArticle}{%
+{\esamepage
+\begin{keys}{W W C-c}
+W W a & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\
+W W h & Hide article {\bf headers}.\\
+W W b & Hide {\bf boring} headers.\\
+W W s & Hide {\bf signature}.\\
+W W l & Hide {\bf list} identifiers in subject-header.\\
+W W p & Hide {\bf PGP}-signatures.\\
+W W P & Hide {\bf PEM} (privacy enhanced messages).\\
+W W B & Hide banner specified by group parameter.\\
+W W c & Hide {\bf citation}.\\
+W W C-c & Hide {\bf citation} using a more intelligent algorithm.\\
+W W C & Hide cited text in articles that aren't roots.\\
+%
+W e & {\bf Emphasize} article.\\
+%
+W H a & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\
+W H c & Highlight article {\bf citations}.\\
+W H h & Highlight article {\bf headers}.\\
+W H s & Highlight article {\bf signature}.\\
\end{keys}
+For all hiding-commands: A positive prefix always hides, and a negative
+prefix will show what was previously hidden.
}}
-\def\Hsubmap{
-\subsec{Help Commands}
-\begin{keys}{H d}
-H d & (C-c C-d) {\bf Describe} this group. [Prefix: re-read the description
-from the server.]\\
-H f & Try to fetch the {\bf FAQ} for this group using ange-ftp.\\
-H h & Give a very short {\bf help} message.\\
-H i & (C-c C-i) Go to the Gnus online {\bf info}.\\
-H v & Display the Gnus {\bf version} number.\\
-\end{keys}
-}
-
-\def\Msubmap{
-\subsec{Mark Articles}
+\newcommand{\MIMEArticleMode}{%
+{\esamepage
+\begin{keys}{M-RET}
+RET & (BUTTON-2) Toggle display of the MIME object.\\
+v & (M-RET) Prompt for a method and then view object using this method.\\
+o & Prompt for a filename and save the MIME object.\\
+c & {\bf Copy} the MIME object to a new buffer and display this buffer.\\
+t & View the MIME object as a different {\bf type}.\\
+$\mid$ & Pipe the MIME object to a process.\\
+\end{keys}}}
+
+%% end of article mode for reading ..........................................
+
+\newcommand{\MarkArticlesGeneral}{% formerly \Msubmap
+{\esamepage
\begin{keys}{M M-C-r}
d & (M d, M r) Mark this article as read and move to the next one.
[scope]\\
D & Mark this article as read and move to the previous one. [scope]\\
-u & (!, M !, M t) Tick this article (mark it as interesting) and move
+! & (u, M !, M t) Tick this article (mark it as interesting) and move
to the next one. [scope]\\
U & Tick this article and move to the previous one. [scope]\\
+M ? & (?) Mark this article as dormant (only followups are
+interesting). [scope]\\
+M D & Show all {\bf dormant} articles (normally they are hidden unless they
+have any followups).\\
+M M-D & Hide all {\bf dormant} articles.\\
+C-w & Mark all articles between point and mark as read.\\
M-u & (M SPC, M c) Clear all marks from this article and move to the next
one. [scope]\\
M-U & Clear all marks from this article and move to the previous one.
-[scope]\\
-M ? & (?) Mark this article as dormant (only followups are
-interesting). [scope]\\
-M b & Set a {\bf bookmark} in this article.\\
+[scope]\\
+%
M e & (E, M x) Mark this article as {\bf expirable}. [scope]\\
+%
M k & (k) {\bf Kill} all articles with the same subject then select the
-next one.\\
-M B & Remove the {\bf bookmark} from this article.\\
-M C & {\bf Catch-up} the articles that are not ticked.\\
-M D & Show all {\bf dormant} articles (normally they are hidden unless they
-have any followups).\\
-M H & Catch-up (mark read) this group to point ({\bf here}).\\
+next unread one.\\
M K & (C-k) {\bf Kill} all articles with the same subject as this one.\\
-C-w & Mark all articles between point and mark as read.\\
-M S & (C-c M-C-s) {\bf Show} all expunged articles.\\
+%
+M C & {\bf Catch-up} the articles that are not ticked and not dormant.\\
M C-c & {\bf Catch-up} all articles in this group.\\
+M H & Catch-up (mark read) this group to point (to-{\bf here}).\\
+%
+M b & Set a {\bf bookmark} in this article.\\
+M B & Remove the {\bf bookmark} from this article.\\
+%
M M-r & (x) Expunge all {\bf read} articles from this group.\\
-M M-D & Hide all {\bf dormant} articles.\\
M M-C-r & Expunge all articles having a given mark.\\
+M S & (C-c M-C-s) {\bf Show} all expunged articles.\\
+M M C-h & Displays some more keys doing ticking slightly differently.\\
\end{keys}
+The variable `gnus-summary-goto-unread' controls what happens after a mark
+has been set (C-x C-i g Setting Marks RET)
+}}
-\subsubsec{Mark Based on Score}
-\begin{keys}{M s m}
+\newcommand{\MarkByScore}{%
+\begin{keys}{M V m}
M V c & {\bf Clear} all marks from all high-scored articles. [score]\\
M V k & {\bf Kill} all low-scored articles. [score]\\
M V m & Mark all high-scored articles with a given {\bf mark}. [score]\\
M V u & Mark all high-scored articles as interesting (tick them). [score]\\
-\end{keys}
+\end{keys}}}
-\subsubsec{The Process Mark}
-{\samepage
-These commands set and remove the process mark \#. You only need to use
+\newcommand{\ProcessMark}{%
+{\esamepage
+These commands set and remove the process mark (\#). You only need to use
it if the set of articles you want to operate on is non-contiguous. Else
use a numeric prefix.\\*
\begin{keys}{M P R}
-M P a & Mark {\bf all} articles (in series order).\\
M P p & (\#, M \#) Mark this article.\\
+M P u & (M-\#, M M-\#) \textbf{unmark} this article.\\
+M P b & Mark all articles in {\bf buffer}.\\
M P r & Mark all articles in the {\bf region}.\\
-M P s & Mark all articles in the current {\bf series}.\\
-M P t & Mark all articles in this (sub){\bf thread}.\\
-M P u & (M-\#, M M-\#) {\bf Unmark} this article.\\
M P R & Mark all articles matching a {\bf regexp}.\\
+M P t & Mark all articles in this (sub){\bf thread}.\\
+M P s & Mark all articles in the current {\bf series}.\\
M P S & Mark all {\bf series} that already contain a marked article.\\
-M P U & {\bf Unmark} all articles.\\
-\end{keys}
-}}
-
-\def\Osubmap{
-\subsec{Output Articles}
+M P a & Mark {\bf all} articles (in series order).\\
+M P U & \textbf{unmark} all articles.\\
+%
+M P i & {\bf Invert} the list of process-marked articles.\\
+M P k & Push the current process-mark set onto stack and unmark
+all articles.\\
+M P y & Pop process-mark set from stack and restore it.\\
+\end{keys}}}
+
+\newcommand{\Limiting}{%
+{\esamepage
+\begin{keys}{/M}
+// & (/s) Limit the summary-buffer to articles matching {\bf subject}.\\
+/a & Limit the summary-buffer to articles matching {\bf author}.\\
+/x & Limit depending on ``extra'' headers.\\
+/u & (x) Limit to {\bf unread} articles.
+[Prefix: also exclude ticked and dormant articles]\\
+/m & Limit to articles marked with specified {\bf mark}.\\
+/t & Ask for a number and exclude articles younger than that many days.
+[Prefix: exclude older articles]\\
+/n & Limit to current article. [p/p]\\
+/w & Pop the previous limit off the stack and restore it.
+[Prefix: pop all limits]\\
+/v & Limit to score. [score]\\
+/E & (M S) Include all expunged articles in the limit.\\
+/D & Include all dormant articles in the limit.\\
+/* & Include all cached articles in the limit.\\
+/d & Exclude all dormant articles from the limit.\\
+/M & Exclude all marked articles.\\
+/T & Include all articles from the current thread in the limit.\\
+/c & Exclude all dormant articles that have no children from the limit.\\
+/C & Mark all excluded unread articles as read.
+[Prefix: also mark ticked and dormant articles]\\
+\end{keys}}}
+
+\newcommand{\OutputArticles}{% formerly \Osubmap
+{\esamepage
\begin{keys}{O m}
+O o & (o, C-o) Save this article using the default article saver. [p/p]\\
+O b & Save this article's {\bf body} in plain file format [p/p]\\
O f & Save this article in plain {\bf file} format. [p/p]\\
+O F & like O f, but overwrite file's contents. [p/p]\\
O h & Save this article in {\bf mh} folder format. [p/p]\\
O m & Save this article in {\bf mail} format. [p/p]\\
-O o & (o, C-o) Save this article using the default article saver. [p/p]\\
-O p & ($\mid$) Pipe this article to a shell command. [p/p]\\
O r & Save this article in {\bf rmail} format. [p/p]\\
O v & Save this article in {\bf vm} format. [p/p]\\
-\end{keys}
-}
-
-\def\Ssubmap{
-\subsec{Post, Followup, Reply, Forward, Cancel}
-{\samepage
-These commands put you in a separate post or mail buffer. After
-editing the article, send it by pressing C-c C-c. If you are in a
-foreign group and want to post the article using the foreign server, give
-a prefix to C-c C-c.\\*
+O p & ($\mid$) Pipe this article to a shell command. [p/p]\\
+\end{keys}}}
+
+\newcommand{\PostReplyetc}{% formerly \Ssubmap
+{\esamepage
+These commands put you in a separate news or mail buffer. See the section
+about composing messages for more information.
+%After
+%editing the article, send it by pressing C-c C-c. If you are in a
+%foreign group and want to post the article using the foreign server, give
+%a prefix to C-c C-c.\\*
\begin{keys}{S O m}
-S b & {\bf Both} post a followup to this article, and send a reply.\\
-S c & (C) {\bf Cancel} this article (only works if it is your own).\\
+S p & (a) {\bf Post} an article to this group.\\
S f & (f) Post a {\bf followup} to this article.\\
+S F & (F) Post a {\bf followup} and include the original. [p/p]\\
+S o p & Forward this article as a {\bf post} to a newsgroup.
+[Prefix: include all headers]\\
+S M-c & Send a complaint about excessive crossposting to the author of this
+article. [p/p]\\
+%
S m & (m) Send {\bf a} mail to some other person.\\
-S o m & (C-c C-f) Forward this article by {\bf mail} to a person.\\
-S o p & Forward this article as a {\bf post} to a newsgroup.\\
-S p & (a) {\bf Post} an article to this group.\\
S r & (r) Mail a {\bf reply} to the author of this article.\\
+S R & (R) Mail a {\bf reply} and include the original. [p/p]\\
+S w & Mail a {\bf wide} reply to this article.\\
+S W & Mail a {\bf wide} reply to this article.\\
+S o m & (C-c C-f) Forward this article by {\bf mail} to a person.
+[Prefix: include all headers]\\
+S D b & Resend {\bf bounced} mail.\\
+S D r & {\bf Resend} mail to a different person.\\
+%
+S n & Post a followup via {\bf news} even if you got the message
+through mail.\\
+S N & Post a followup via {\bf news} and include the original mail.
+[p/p]\\
+%
+S c & (C) {\bf Cancel} this article (only works if it is your own).\\
S s & {\bf Supersede} this article with a new one (only for own
-articles).\\
-S u & {\bf Uuencode} a file and post it as a series.\\
-S B & {\bf Both} post a followup, send a reply, and include the
-original. [p/p]\\
-S F & (F) Post a {\bf followup} and include the original. [p/p]\\
+articles).\\
+%
S O m & Digest these series and forward by {\bf mail}. [p/p]\\
S O p & Digest these series and forward as a {\bf post} to a newsgroup.
[p/p]\\
-S R & (R) Mail a {\bf reply} and include the original. [p/p]\\
+%
+S u & {\bf Uuencode} a file and post it as a series.\\
\end{keys}
If you want to cancel or supersede an article you just posted (before it
has appeared on the server), go to the *post-news* buffer, change
`Message-ID' to `Cancel' or `Supersedes' and send it again with C-c C-c.
}}
-\def\Tsubmap{
-\subsec{Thread Commands}
-\begin{keys}{T \#}
+\newcommand{\Threading}{% formerly \Tsubmap
+{\esamepage
+\begin{keys}{T M-\#}
T \# & Mark this thread with the process mark.\\
-T d & Move to the next article in this thread ({\bf down}). [distance]\\
+T M-\# & Remove process-marks from this thread.\\
+%
+T t & Re-{\bf thread} the current article's thread.\\
+% movement
+T n & (M-C-f) Go to the {\bf next} thread. [distance]\\
+T p & (M-C-b) Go to the {\bf previous} thread. [distance]\\
+T d & {\bf Descend} this thread. [distance]\\
+T u & Ascend this thread ({\bf up}-thread). [distance]\\
+T o & Go to the top of this thread.\\
+%
+T s & {\bf Show} the thread hidden under this article.\\
T h & {\bf Hide} this (sub)thread.\\
+%
T i & {\bf Increase} the score of this thread.\\
+T l & (M-C-l) {\bf Lower} the score of this thread.\\
+%
T k & (M-C-k) {\bf Kill} the current (sub)thread. [Negative prefix:
tick it, positive prefix: unmark it.]\\
-T l & (M-C-l) {\bf Lower} the score of this thread.\\
-T n & (M-C-f) Go to the {\bf next} thread. [distance]\\
-T p & (M-C-b) Go to the {\bf previous} thread. [distance]\\
-T s & {\bf Show} the thread hidden under this article.\\
-T u & Move to the previous article in this thread ({\bf up}). [distance]\\
+%
T H & {\bf Hide} all threads.\\
T S & {\bf Show} all hidden threads.\\
T T & (M-C-t) {\bf Toggle} threading.\\
-\end{keys}
-}
+\end{keys}}}
-\def\Vsubmap{
-\subsec{Score (Value) Commands}
-{\samepage
+\newcommand{\Scoring}{% formerly \Vsubmap
+{\esamepage
Read about Adaptive Scoring in the online info.\\*
\begin{keys}{\bf A p m l}
V a & {\bf Add} a new score entry, specifying all elements.\\
V S & Display the {\bf score} of this article.\\
\bf A p m l& Make a scoring entry based on this article.\\
\end{keys}
-
The four letters stand for:\\*
\quad \B{A}ction: I)ncrease, L)ower;\\*
\quad \B{p}art: a)utor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines,
\begin{keys}{C-c C-c}
C-c C-c & Finish editing the score file.\\
C-c C-d & Insert the current {\bf date} as number of days.\\
-\end{keys}
-}}
-
-\def\Wsubmap{
-\subsec{Wash the Article Buffer}
-\begin{keys}{W C-c}
-W b & Make Message-IDs and URLs in the article to mouse-clickable {\bf
- buttons}.\\
-W c & Remove extra {\bf CRs} (^M) from the article.\\
-W f & Look for and display any X-{\bf Face} headers.\\
-W l & (w) Remove page breaks ({\bf^L}) from the article.\\
-W m & Toggle {\bf MIME} processing.\\
-W o & Treat {\bf overstrike} or underline (^H\_) in the article.\\
-W q & Treat {\bf quoted}-printable in the article.\\
-W r & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\
-W t & (t) {\bf Toggle} the displaying of all headers.\\
-v & Toggle permanent {\bf verbose} displaying of all headers.\\
-W w & Do word {\bf wrap} in the article.\\
-W T e & Convert the article timestamp to time {\bf elapsed} since sent.\\
-W T l & Convert the article timestamp to the {\bf local} timezone.\\
-W T u & (W T z) Convert the article timestamp to {\bf UTC} ({\bf Zulu},
-GMT).\\
-\end{keys}
-
-\subsubsec{Hide/Highlight Parts of the Article}
-\begin{keys}{W W C-c}
-W W a & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\
-W W c & Hide article {\bf citation}.\\
-W W h & Hide article {\bf headers}.\\
-W W s & Hide article {\bf signature}.\\
-W W C-c & Hide article {\bf citation} using a more intelligent algorithm.\\
-%\end{keys}
-%
-%\subsubsec{Highlight Parts of the Article}
-%\begin{keys}{W H A}
-W H a & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\
-W H c & Highlight article {\bf citation}.\\
-W H h & Highlight article {\bf headers}.\\
-W H s & Highlight article {\bf signature}.\\
-\end{keys}
-}
+\end{keys}}}
-\def\Xsubmap{
-\subsec{Extract Series (Uudecode etc)}
-{\samepage
+\newcommand{\ExtractSeries}{% formerly \Xsubmap
+{\esamepage
Gnus recognizes if the current article is part of a series (multipart
posting whose parts are identified by numbers in their subjects, e.g.{}
1/10\dots10/10) and processes the series accordingly. You can mark and
\end{keys}
}}
-\def\Zsubmap{
-\subsec{Exit the Current Group}
+\newcommand{\ExitSummary}{% formerly \Zsubmap
+{\esamepage
\begin{keys}{Z G}
+Z Z & (q, Z Q) Exit this group.\\
+Z E & (Q) {\bf Exit} without updating the group information.\\
+%
Z c & (c) Mark all unticked articles as read ({\bf catch-up}) and exit.\\
-Z n & Mark all articles as read and go to the {\bf next} group.\\
Z C & Mark all articles as read ({\bf catch-up}) and exit.\\
-Z E & (Q) {\bf Exit} without updating the group information.\\
-Z G & (M-g) Check for new articles in this group ({\bf get}).\\
+%
+Z n & Mark all articles as read and go to the {\bf next} group.\\
Z N & Exit and go to {\bf the} next group.\\
Z P & Exit and go to the {\bf previous} group.\\
+%
+Z G & (M-g) Check for new articles in this group ({\bf get}).\\
Z R & Exit this group, and then enter it again ({\bf reenter}).
[Prefix: select all articles, read and unread.]\\
-Z Z & (q, Z Q) Exit this group.\\
-\end{keys}
-}
+Z s & Update and save the dribble buffer. [Prefix: save .newsrc* as well]\\
+\end{keys}}}
-\def\ArticleMode{
-\sec{Article Mode}
-{\samepage
-% All keys for Summary mode also work in Article mode.
-The normal navigation keys work in Article mode.
-Some additional keys are:\\*
+\newcommand{\MsgCompositionGeneral}{%
+Press C-c ? in the composition-buffer to get this information.
+{\esamepage
\begin{keys}{C-c C-m}
-RET & (middle mouse button) Activate the button at point to follow
-an URL or Message-ID.\\
-TAB & Move the point to the next button.\\
-h & (s) Go to the {\bf header} line of the article in the {\bf
-summary} buffer.\\
-C-c ^ & Get the article with the Message-ID near point.\\
-C-c C-m & {\bf Mail} reply to the address near point (prefix: include the
-original).\\
-\end{keys}
-}}
-
-\def\ServerMode{
-\sec{Server Mode}
-{\samepage
-To enter this mode, press `^' while in Group mode.\\*
+% sending
+C-c C-c & Send message and exit. [Prefix: send via foreign server]\\
+C-c C-s & Send message. [Prefix: send via foreign server]\\
+C-c C-d & Don't send message (save as \textbf{draft}).\\
+C-c C-k & \textbf{Kill} message-buffer.\\
+C-c C-m & {\bf Mail} reply to the address near point.
+[Prefix: include the original]\\
+% modify headers/body
+C-c C-t & Paste the recipient's address into \textbf{To:}-field.\\
+C-c C-n & Insert a \textbf{Newsgroups:}-header.\\
+C-c C-o & Sort headers.\\
+C-c C-e & \textbf{Elide} region.\\
+C-c C-v & Kill everything outside region.\\
+C-c C-r & Do a \textbf{Rot-13} on the body.\\
+C-c C-w & Insert signature (from `message-signature-file').\\
+C-c C-z & Kill everything up to signature.\\
+C-c C-y & \textbf{Yank} original message.\\
+C-c C-q & Fill the yanked message.\\
+\end{keys}}}
+
+\newcommand{\MsgCompositionMovementArticle}{%
+The following functions create the header-field if necessary.
+{\esamepage
+\begin{keys}{C-c C-f C-u}
+C-c TAB & Move to \textbf{signature}.\\
+C-c C-b & Move to \textbf{body}.\\
+C-c C-f C-t & Move to \textbf{To:}.\\
+C-c C-f C-c & Move to \textbf{Cc:}.\\
+C-c C-f C-b & Move to \textbf{Bcc:}.\\
+C-c C-f C-w & Move to \textbf{Fcc:}.\\
+C-c C-f C-s & Move to \textbf{Subject:}.\\
+C-c C-f C-r & Move to \textbf{Reply-To:}.\\
+C-c C-f C-f & Move to \textbf{Followup-To:}.\\
+C-c C-f C-n & Move to \textbf{Newsgroups:}.\\
+C-c C-f C-u & Move to \textbf{Summary:}.\\
+C-c C-f C-k & Move to \textbf{Keywords:}.\\
+C-c C-f C-d & Move to \textbf{Distribution:}.\\
+\end{keys}}}
+
+\newcommand{\MsgCompositionMML}{%
+{\esamepage
+\begin{keys}{M-m P}
+M-m f & (C-c C-a) Attach \textbf{file}.\\
+M-m b & Attach contents of \textbf{buffer}.\\
+M-m e & Attach \textbf{external} file (ftp..).\\
+M-m P & Create MIME-\textbf{preview} (new buffer).\\
+M-m v & \textbf{Validate} article.\\
+M-m p & Insert \textbf{part}.\\
+M-m m & Insert \textbf{multi}-part.\\
+M-m q & \textbf{Quote} region.\\
+% TODO: narrow headers (M-m n) ?
+\end{keys}}}
+
+%% TODO:
+\newcommand{\ServerMode}{%
+{\esamepage
+To enter this mode, press `\^' while in Group mode.\\*
\begin{keys}{SPC}
SPC & (RET) Browse this server.\\
a & {\bf Add} a new server.\\
k & {\bf Kill} this server. [scope]\\
l & {\bf List} all servers.\\
q & Return to the group buffer ({\bf quit}).\\
+s & Request that the server scan its sources for new articles.\\
+g & Request that the server regenerate its data.\\
y & {\bf Yank} the previously killed server.\\
-\end{keys}
-}}
+\end{keys}}}
-\def\BrowseServer{
-\sec{Browse Server Mode}
-{\samepage
+\newcommand{\BrowseServer}{%
+{\esamepage
To enter this mode, press `B' while in Group mode.\\*
\begin{keys}{RET}
RET & Enter the current group.\\
p & Go to the {\bf previous} group. [distance]\\
q & (l) {\bf Quit} browse mode.\\
u & Subscribe to the current group. [scope]\\
-\end{keys}
-}}
+\end{keys}}}