-\input texinfo @c -*-texinfo-*- -*- coding: iso-latin-1 -*-
+\input texinfo
@setfilename gnus
@settitle T-gnus 6.15 Manual
This file documents gnus, the GNU Emacs newsreader.
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
* Choosing Articles:: Reading articles.
* Paging the Article:: Scrolling the current article.
* Reply Followup and Post:: Posting articles.
-* Delayed Articles::
+* Delayed Articles::
* Marking Articles:: Marking articles as read, expirable, etc.
* Limiting:: You can limit the summary buffer.
* Threading:: How threads are made.
* Summary Mail Commands:: Sending mail.
* Summary Post Commands:: Sending news.
* Summary Message Commands:: Other Message-related commands.
-* Canceling and Superseding::
+* Canceling and Superseding::
Marking Articles
* Unread Articles:: Marks for unread articles.
* Read Articles:: Marks for read articles.
* Other Marks:: Marks that do not affect readedness.
-* Setting Marks::
-* Generic Marking Commands::
-* Setting Process Marks::
+* Setting Marks::
+* Generic Marking Commands::
+* Setting Process Marks::
Marking Articles
* Summary Group Information:: Information oriented commands.
* Searching for Articles:: Multiple article commands.
-* Summary Generation Commands::
+* Summary Generation Commands::
* Really Various Summary Commands:: Those pesky non-conformant commands.
Article Buffer
Agent Commands
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands::
+* Summary Agent Commands::
+* Server Agent Commands::
Scoring
@samp{%M%S%5y: %(%g%)\n} is the value that produced those lines above.
There should always be a colon on the line; the cursor always moves to
-the colon after performing an operation. Nothing else is required---not
-even the group name. All displayed text is just window dressing, and is
-never examined by gnus. Gnus stores all real information it needs using
-text properties.
+the colon after performing an operation. @xref{Positioning
+Point}. Nothing else is required---not even the group name. All
+displayed text is just window dressing, and is never examined by Gnus.
+Gnus stores all real information it needs using text properties.
(Note that if you make a really strange, wonderful, spreadsheet-like
layout, everybody will believe you are hard at work with the accounting
command, but this one does it without expunging and hiding dormants
(@code{gnus-group-visible-select-group}).
-@item M-C-RET
-@kindex M-C-RET (Group)
+@item C-M-RET
+@kindex C-M-RET (Group)
@findex gnus-group-select-group-ephemerally
Finally, this command selects the current group ephemerally without
doing any processing of its contents
all expirable articles in the group that have been around for a while.
(@pxref{Expiring Mail}).
-@item C-c M-C-x
-@kindex C-c M-C-x (Group)
+@item C-c C-M-x
+@kindex C-c C-M-x (Group)
@findex gnus-group-expire-all-groups
Run all expirable articles in all groups through the expiry process
(@code{gnus-group-expire-all-groups}).
value should be a regexp to match the groups that should go in that
topic.
+@item subscribe-level
+When subscribing new groups by topic (see the @code{subscribe} parameter),
+the group will be subscribed with the level specified in the
+@code{subscribe-level} instead of @code{gnus-level-default-subscribed}.
+
@end table
Group parameters (of course) override topic parameters, and topic
@item a
@kindex a (Group)
@findex gnus-group-post-news
-Post an article to a group (@code{gnus-group-post-news}). If given a
-prefix, the current group name will be used as the default.
+Start composing a message (a news by default)
+(@code{gnus-group-post-news}). If given a prefix, post to the group
+under the point. If the prefix is 1, prompt for a group to post to.
+Contrary to what the name of this function suggests, the prepared
+article might be a mail instead of a news, if a mail group is specified
+with the prefix argument. @xref{Composing Messages}.
@item m
@kindex m (Group)
@findex gnus-group-mail
-Mail a message somewhere (@code{gnus-group-mail}).
+Mail a message somewhere (@code{gnus-group-mail}). If given a prefix,
+use the posting style of the group under the point. If the prefix is 1,
+prompt for a group name to find the posting style.
+@xref{Composing Messages}.
+
+@item i
+@kindex i (Group)
+@findex gnus-group-news
+Start composing a news (@code{gnus-group-news}). If given a prefix,
+post to the group under the point. If the prefix is 1, prompt
+for group to post to. @xref{Composing Messages}.
+
+This function actually prepares a news even when using mail groups.
+This is useful for "posting" messages to mail groups without actually
+sending them over the network: they're just saved directly to the group
+in question. The corresponding backend must have a request-post method
+for this to work though.
@end table
@vindex gnus-sieve-region-start
@vindex gnus-sieve-region-end
The generated Sieve script is placed in @code{gnus-sieve-file} (by
-default @file{~/.sieve}). The code Gnus generates is placed between
-two delimiters, @code{gnus-sieve-region-start} and
+default @file{~/.sieve}). The Sieve code that Gnus generate is placed
+between two delimiters, @code{gnus-sieve-region-start} and
@code{gnus-sieve-region-end}, so you may write additional Sieve code
outside these delimiters that will not be removed the next time you
regenerate the Sieve script.
+@vindex gnus-sieve-crosspost
+The variable @code{gnus-sieve-crosspost} controls how the Sieve script
+is generated. If it is non-nil (the default) articles is placed in
+all groups that have matching rules, otherwise the article is only
+placed in the group with the first matching rule. For example, the
+group parameter @samp{(sieve address "sender"
+"owner-ding@@hpc.uh.edu")} will generate the following piece of Sieve
+code if @code{gnus-sieve-crosspost} is nil. (When
+@code{gnus-sieve-crosspost} is non-nil, it looks the same except that
+the line containing the call to @code{stop} is removed.)
+
+@example
+if address "sender" "owner-ding@@hpc.uh.edu" @{
+ fileinto "INBOX.ding";
+ stop;
+@}
+@end example
+
@xref{Top, ,Top, sieve, Emacs Sieve}.
@table @kbd
* Choosing Articles:: Reading articles.
* Paging the Article:: Scrolling the current article.
* Reply Followup and Post:: Posting articles.
-* Delayed Articles::
+* Delayed Articles::
* Marking Articles:: Marking articles as read, expirable, etc.
* Limiting:: You can limit the summary buffer.
* Threading:: How threads are made.
performing an operation. (Of course, Gnus wouldn't be Gnus if it wasn't
possible to change this. Just write a new function
@code{gnus-goto-colon} which does whatever you like with the cursor.)
+@xref{Positioning Point}.
The default string is @samp{%U%R%z%I%(%[%4L: %-23,23n%]%) %s\n}.
* Summary Mail Commands:: Sending mail.
* Summary Post Commands:: Sending news.
* Summary Message Commands:: Other Message-related commands.
-* Canceling and Superseding::
+* Canceling and Superseding::
@end menu
@kindex S m (Summary)
@findex gnus-summary-mail-other-window
@c @icon{gnus-summary-mail-originate}
-Send a mail to some other person
-(@code{gnus-summary-mail-other-window}).
+Prepare a mail (@code{gnus-summary-mail-other-window}). By default, use
+the posting style of the current group. If given a prefix, disable that.
+If the prefix is 1, prompt for a group name to find the posting style.
+
+@item S i
+@itemx i
+@kindex i (Summary)
+@kindex S i (Summary)
+@findex gnus-summary-news-other-window
+Prepare a news (@code{gnus-summary-news-other-window}). By default,
+post to the current group. If given a prefix, disable that. If the
+prefix is 1, prompt for a group to post to.
+
+This function actually prepares a news even when using mail groups.
+This is useful for "posting" messages to mail groups without actually
+sending them over the network: they're just saved directly to the group
+in question. The corresponding backend must have a request-post method
+for this to work though.
@item S D b
@kindex S D b (Summary)
@kindex S p (Summary)
@findex gnus-summary-post-news
@c @icon{gnus-summary-post-news}
-Post an article to the current group
-(@code{gnus-summary-post-news}).
+Prepare for posting an article (@code{gnus-summary-post-news}). By
+default, post to the current group. If given a prefix, disable that.
+If the prefix is 1, prompt for another group instead.
@item S f
@itemx f
@item
@vindex gnus-unseen-mark
Articles that haven't been seen by the user before are marked with a
-@samp{.} in the second column (@code{gnus-unseen-mark}).
+@samp{.} in the second column (@code{gnus-unseen-mark}).
@item
@vindex gnus-not-empty-thread-mark
@kindex / / (Summary)
@findex gnus-summary-limit-to-subject
Limit the summary buffer to articles that match some subject
-(@code{gnus-summary-limit-to-subject}).
+(@code{gnus-summary-limit-to-subject}). If given a prefix, exclude
+matching articles.
@item / a
@kindex / a (Summary)
@findex gnus-summary-limit-to-author
Limit the summary buffer to articles that match some author
-(@code{gnus-summary-limit-to-author}).
+(@code{gnus-summary-limit-to-author}). If given a prefix, exclude
+matching articles.
@item / x
@kindex / x (Summary)
@findex gnus-summary-limit-to-extra
Limit the summary buffer to articles that match one of the ``extra''
headers (@pxref{To From Newsgroups})
-(@code{gnus-summary-limit-to-extra}).
+(@code{gnus-summary-limit-to-extra}). If given a prefix, exclude
+matching articles.
@item / u
@itemx x
@kindex / o (Summary)
@findex gnus-summary-insert-old-articles
Insert all old articles in the summary buffer. If given a numbered
-prefix, fetch this number of articles.
+prefix, fetch this number of articles.
@end table
@table @kbd
@item T k
-@itemx M-C-k
+@itemx C-M-k
@kindex T k (Summary)
-@kindex M-C-k (Summary)
+@kindex C-M-k (Summary)
@findex gnus-summary-kill-thread
Mark all articles in the current (sub-)thread as read
(@code{gnus-summary-kill-thread}). If the prefix argument is positive,
articles instead.
@item T l
-@itemx M-C-l
+@itemx C-M-l
@kindex T l (Summary)
-@kindex M-C-l (Summary)
+@kindex C-M-l (Summary)
@findex gnus-summary-lower-thread
Lower the score of the current (sub-)thread
(@code{gnus-summary-lower-thread}).
@item T n
@kindex T n (Summary)
-@itemx M-C-n
-@kindex M-C-n (Summary)
+@itemx C-M-n
+@kindex C-M-n (Summary)
@itemx M-down
@kindex M-down (Summary)
@findex gnus-summary-next-thread
@item T p
@kindex T p (Summary)
-@itemx M-C-p
-@kindex M-C-p (Summary)
+@itemx C-M-p
+@kindex C-M-p (Summary)
@itemx M-up
@kindex M-up (Summary)
@findex gnus-summary-prev-thread
@findex gnus-summary-pipe-output
Save the current article in a pipe. Uhm, like, what I mean is---Pipe
the current article to a process (@code{gnus-summary-pipe-output}).
+
+@item O P
+@kindex O P (Summary)
+@findex gnus-summary-muttprint
+@vindex gnus-summary-muttprint-program
+Save the current article into muttprint. That is, print it using the
+external program Muttprint (see
+@uref{http://muttprint.sourceforge.net/}). The program name and
+options to use is controlled by the variable
+@code{gnus-summary-muttprint-program}. (@code{gnus-summary-muttprint}).
+
@end table
@vindex gnus-prompt-before-saving
the @code{gnus-file-save-name} variable to get a file name to save the
article in. The default is @code{gnus-numeric-save-name}.
+@item gnus-summary-write-to-file
+@findex gnus-summary-write-to-file
+Write the article straight to an ordinary file. The file is
+overwritten if it exists. Uses the function in the
+@code{gnus-file-save-name} variable to get a file name to save the
+article in. The default is @code{gnus-numeric-save-name}.
+
@item gnus-summary-save-body-in-file
@findex gnus-summary-save-body-in-file
Append the article body to an ordinary file. Uses the function in the
face as the argument. If the @code{gnus-article-x-face-too-ugly} (which
is a regexp) matches the @code{From} header, the face will not be shown.
The default action under Emacs is to fork off the @code{display}
-program@footnote{@code{display} is from the ImageMagick package. For the
-@code{uncompface} and @code{icontopbm} programs look for a package
-like `compface' or `faces-xface' on a GNU/Linux system.}
-to view the face. Under XEmacs or Emacs 21+ with suitable image
-support, the default action is to display the face before the
-@code{From} header. (It's nicer if XEmacs has been compiled with X-Face
-support---that will make display somewhat faster. If there's no native
-X-Face support, Gnus will try to convert the @code{X-Face} header using
-external programs from the @code{pbmplus} package and
-friends.@footnote{On a GNU/Linux system look for packages with names
-like @code{netpbm} or @code{libgr-progs}.}) If you
-want to have this function in the display hook, it should probably come
-last.
+program@footnote{@code{display} is from the ImageMagick package. For
+the @code{uncompface} and @code{icontopbm} programs look for a package
+like `compface' or `faces-xface' on a GNU/Linux system.} to view the
+face. Under XEmacs or Emacs 21+ with suitable image support, the
+default action is to display the face before the @code{From} header.
+(It's nicer if XEmacs has been compiled with X-Face support---that will
+make display somewhat faster. If there's no native X-Face support, Gnus
+will try to convert the @code{X-Face} header using external programs
+from the @code{pbmplus} package and friends.@footnote{On a GNU/Linux
+system look for packages with names like @code{netpbm} or
+@code{libgr-progs}.}) If you want to have this function in the display
+hook, it should probably come last.
+(NOTE: @code{x-face} is used in the variable/function names, not @code{xface}).
@item W b
@kindex W b (Summary)
message.@footnote{PGP keys for many hierarchies are available at
@uref{ftp://ftp.isc.org/pub/pgpcontrol/README.html}}
+@item W s
+@kindex W s (Summary)
+@findex gnus-summary-force-verify-and-decrypt
+Verify a signed (PGP, PGP/MIME or S/MIME) message
+(@code{gnus-summary-force-verify-and-decrypt}).
+
@item W W H
@kindex W W H (Summary)
@findex gnus-article-strip-headers-from-body
@vindex gnus-ps-print-hook
@findex gnus-summary-print-article
Generate and print a PostScript image of the article buffer
-(@code{gnus-summary-print-article}). @code{gnus-ps-print-hook} will be
-run just before printing the buffer.
+(@code{gnus-summary-print-article}). @code{gnus-ps-print-hook} will
+be run just before printing the buffer. An alternative way to print
+article is to use Muttprint (@pxref{Saving Articles}).
@end table
expirable articles in the group that have been around for a while.
(@pxref{Expiring Mail}).
-@item B M-C-e
-@kindex B M-C-e (Summary)
+@item B C-M-e
+@kindex B C-M-e (Summary)
@findex gnus-summary-expire-articles-now
Delete all the expirable articles in the group
(@code{gnus-summary-expire-articles-now}). This means that @strong{all}
@menu
* Summary Group Information:: Information oriented commands.
* Searching for Articles:: Multiple article commands.
-* Summary Generation Commands::
+* Summary Generation Commands::
* Really Various Summary Commands:: Those pesky non-conformant commands.
@end menu
articles))
@end lisp
+@vindex gnus-newsgroup-variables
+@item gnus-newsgroup-variables
+A list of newsgroup (summary buffer) local variables, or cons of
+variables and their default values (when the default values are not
+nil), that should be made global while the summary buffer is active.
+These variables can be used to set variables in the group parameters
+while still allowing them to affect operations done in other
+buffers. For example:
+
+@lisp
+(setq gnus-newsgroup-variables
+ '(message-use-followup-to
+ (gnus-visible-headers .
+ "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^To:")))
+@end lisp
+
@end table
some format, you @kbd{C-d} and read these messages in a more convenient
fashion.
-@item M-C-d
-@kindex M-C-d (Summary)
+@item C-M-d
+@kindex C-M-d (Summary)
@findex gnus-summary-read-document
This command is very similar to the one above, but lets you gather
several documents into one biiig group
Expand the summary buffer window (@code{gnus-summary-expand-window}).
If given a prefix, force an @code{article} window configuration.
-@item M-C-e
-@kindex M-C-e (Summary)
+@item C-M-e
+@kindex C-M-e (Summary)
@findex gnus-summary-edit-parameters
Edit the group parameters (@pxref{Group Parameters}) of the current
group (@code{gnus-summary-edit-parameters}).
-@item M-C-a
-@kindex M-C-a (Summary)
+@item C-M-a
+@kindex C-M-a (Summary)
@findex gnus-summary-customize-parameters
Customize the group parameters (@pxref{Group Parameters}) of the current
group (@code{gnus-summary-customize-parameters}).
@section Security
Gnus is able to verify signed messages or decrypt encrypted messages.
-The formats that are supported are PGP and S/MIME, however you need
-some external programs to get things to work:
+The formats that are supported are PGP (plain text, RFC 1991 format),
+PGP/MIME (RFC 2015/3156) and S/MIME, however you need some external
+programs to get things to work:
@enumerate
@item
@item h
Displayed when headers are hidden in the article buffer.
-@item p
+@item p
Displayed when article is digitally signed or encrypted, and Gnus has
hidden the security headers. (N.B. does not tell anything about
security status, i.e. good or bad signature.)
@lisp
(require 'gpg)
(setq mml2015-use 'gpg)
+(setq mml1991-use 'gpg)
(setq gpg-temp-directory (expand-file-name "~/.gnupg/tmp"))
@end lisp
To sign or encrypt your message you may choose to use the MML Security
menu or @kbd{C-c C-m s p} to sign your message using PGP/MIME,
-@kbd{C-c C-m s s} to sign your message using S/MIME. There's also
+@kbd{C-c C-m s s} to sign your message using S/MIME. There's also
@kbd{C-c C-m c p} to encrypt your message with PGP/MIME and @kbd{C-c
C-m c s} to encrypt using S/MIME. @xref{Security, ,Security, message,
The Message Manual}.
(setq nnmail-expiry-target "nnml:expired")
@end lisp
+@findex nnmail-fancy-expiry-target
+@vindex nnmail-fancy-expiry-targets
+Gnus provides a function @code{nnmail-fancy-expiry-target} which will
+expire mail to groups according to the variable
+@code{nnmail-fancy-expiry-targets}. Here's an example:
+
+@lisp
+ (setq nnmail-expiry-target 'nnmail-fancy-expiry-target
+ nnmail-fancy-expiry-targets
+ '((to-from "boss" "nnfolder:Work")
+ ("subject" "IMPORTANT" "nnfolder:IMPORTANT.%Y.%b")
+ ("from" ".*" "nnfolder:Archive-%Y")))
+@end lisp
+
+With this setup, any mail that has @code{IMPORTANT} in its Subject
+header and was sent in the year @code{YYYY} and month @code{MMM}, will
+get expired to the group @code{nnfolder:IMPORTANT.YYYY.MMM}. If its
+From or To header contains the string @code{boss}, it will get expired
+to @code{nnfolder:Work}. All other mail will get expired to
+@code{nnfolder:Archive-YYYY}.
@vindex nnmail-keep-last-article
If @code{nnmail-keep-last-article} is non-@code{nil}, Gnus will never
be called with the headers narrowed and should return a group where it
thinks the article should be split to. See @code{nnimap-split-fancy}.
-The splitting code tries to create mailboxes if it need too.
+The splitting code tries to create mailboxes if it needs to.
To allow for different split rules on different virtual servers, and
even different split rules in different inboxes on the same server,
and in that case @code{nnvirtual} tells Gnus that the article came from a
not-news back end. (Just to be on the safe side.)
-@kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups}
+@kbd{C-c C-n} in the message buffer will insert the @code{Newsgroups}
line from the article you respond to in these cases.
@menu
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands::
+* Summary Agent Commands::
+* Server Agent Commands::
@end menu
You can run a complete batch fetch from the command line with the
@kindex J u (Agent Summary)
@findex gnus-agent-summary-fetch-group
Download all downloadable articles in the current group
-(@code{gnus-agent-summary-fetch-group}).
+(@code{gnus-agent-summary-fetch-group}).
@end table
this mechanism does, but here's a cookbook example for @code{nnml} on
how to allow scoring on the @samp{To} and @samp{Cc} headers.
-Put the following in your @file{.gnus.el} file.
+Put the following in your @file{.gnus.el} file.
@lisp
(setq gnus-extra-headers '(To Cc Newsgroups Keywords)
@node Advanced Scoring Examples
@subsection Advanced Scoring Examples
+Please note that the following examples are score file rules. To
+make a complete score file from them, surround them with another pair
+of parentheses.
+
Let's say you want to increase the score of articles written by Lars
when he's talking about Gnus:
I'm not, so I've added a second prefix---the @dfn{symbolic prefix}. The
prefix key is @kbd{M-i} (@code{gnus-symbolic-argument}), and the next
character typed in is the value. You can stack as many @kbd{M-i}
-prefixes as you want. @kbd{M-i a M-C-u} means ``feed the @kbd{M-C-u}
-command the symbolic prefix @code{a}''. @kbd{M-i a M-i b M-C-u} means
-``feed the @kbd{M-C-u} command the symbolic prefixes @code{a} and
+prefixes as you want. @kbd{M-i a C-M-u} means ``feed the @kbd{C-M-u}
+command the symbolic prefix @code{a}''. @kbd{M-i a M-i b C-M-u} means
+``feed the @kbd{C-M-u} command the symbolic prefixes @code{a} and
@code{b}''. You get the drift.
Typing in symbolic prefixes to commands that don't accept them doesn't
@findex gnus-undo
The undoability is provided by the @code{gnus-undo-mode} minor mode. It
is used if @code{gnus-use-undo} is non-@code{nil}, which is the
-default. The @kbd{M-C-_} key performs the @code{gnus-undo}
+default. The @kbd{C-M-_} key performs the @code{gnus-undo}
command, which should feel kinda like the normal Emacs @code{undo}
command.
the @code{xface} support compiled into XEmacs. Otherwise you must have
the @code{netpbm} utilities installed, or munge the
@code{gnus-picons-convert-x-face} variable to use something else.
-
+(NOTE: @code{x-face} is used in the variable name, not @code{xface})
@node Easy Picons
@subsubsection Easy Picons
in the @code{gnus-picons-display-where} buffer.
@item gnus-picons-article-display-x-face
-@findex gnus-article-display-picons
+@findex gnus-picons-article-display-x-face
Decodes and displays the X-Face header if present.
+(NOTE: @code{x-face} is used in the function name, not @code{xface})
@end table
(@code{xbm}). Defaults to @code{(format "@{ echo '/* Width=48,
Height=48 */'; uncompface; @} | icontopbm | pbmtoxbm > %s"
gnus-picons-x-face-file-name)}
+(NOTE: @code{x-face} is used in the variable name, not @code{xface})
@item gnus-picons-x-face-file-name
@vindex gnus-picons-x-face-file-name
Names a temporary file to store the @code{X-Face} bitmap in. Defaults
to @code{(format "/tmp/picon-xface.%s.xbm" (user-login-name))}.
+(NOTE: @code{x-face} is used in the variable name, not @code{xface})
@item gnus-picons-has-modeline-p
@vindex gnus-picons-has-modeline-p
when generating lines in buffers (@pxref{Advanced Formatting}).
@item
-Several commands in the group buffer can be undone with @kbd{M-C-_}
+Several commands in the group buffer can be undone with @kbd{C-M-_}
(@pxref{Undo}).
@item
@item
A new command for reading collections of documents
-(@code{nndoc} with @code{nnvirtual} on top) has been added---@kbd{M-C-d}
+(@code{nndoc} with @code{nnvirtual} on top) has been added---@kbd{C-M-d}
(@pxref{Really Various Summary Commands}).
@item
@itemize @bullet
-@item
+@item
The mail-fetching functions have changed. See the manual for the
many details. In particular, all procmail fetching variables are gone.
More information is available in the info doc at Select Methods ->
Getting Mail -> Mail Sources
-@item
+@item
Gnus is now a MIME-capable reader. This affects many parts of
Gnus, and adds a slew of new commands. See the manual for details.
Believe it or not, but some people who use Gnus haven't really used
Emacs much before they embarked on their journey on the Gnus Love Boat.
-If you are one of those unfortunates whom ``@kbd{M-C-a}'', ``kill the
+If you are one of those unfortunates whom ``@kbd{C-M-a}'', ``kill the
region'', and ``set @code{gnus-flargblossen} to an alist where the key
is a regexp that is used for matching on the group name'' are magical
phrases with little or no meaning, then this appendix is for you. If
to the left hand side of the keyboard, usually on the bottom row.
Now, us Emacs people don't say ``press the meta-control-m key'',
-because that's just too inconvenient. We say ``press the @kbd{M-C-m}
+because that's just too inconvenient. We say ``press the @kbd{C-M-m}
key''. @kbd{M-} is the prefix that means ``meta'' and ``C-'' is the
prefix that means ``control''. So ``press @kbd{C-k}'' means ``press
down the control key, and hold it down while you press @kbd{k}''.
-``Press @kbd{M-C-k}'' means ``press down and hold down the meta key and
+``Press @kbd{C-M-k}'' means ``press down and hold down the meta key and
the control key and then press @kbd{k}''. Simple, ay?
This is somewhat complicated by the fact that not all keyboards have a
@end iflatex
@end iftex
+@c Local Variables:
+@c mode: texinfo
+@c coding: iso-8859-1
@c End:
% LocalWords: BNF mucho detailmenu cindex kindex kbd
% LocalWords: findex Gnusae vindex dfn dfn samp nntp setq nnspool nntpserver