view man/m-x.texi @ 38212:6b14cc47a4f2

Major rewrite. Sections Tags, Emerge, Change Log and Authors moved to maintaining.texi. Some sections reordered. Node Misc for Programs moved to just before the language-specific sections. New node Defuns contains an intro plus the old Defuns node (now renamed Moving by Defuns) as well as Imenu, Which Function, and a node Left Margin Paren to explain the convention about this. New node Parentheses now documents M-x check-parens. It contains subnodes Expressions, Moving by Parens, and Matching. Expressions and Moving by Parens contain the material formerly in Lists and List Commands, but divided up differently. The section Balanced Editing has been deleted. Most of the C indentation customization (all except c-set-style), has been replaced with a reference to the C Modes manual. Documentation now is divided into three subsections. Some rewrites in the Program Indent section about C-u TAB and C-M-q.
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 Jun 2001 13:43:32 +0000
parents d18a841a4a5a
children 695cf19ef79e d7ddb3e565de
line wrap: on
line source

@c This is part of the Emacs manual.
@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node M-x, Help, Minibuffer, Top
@chapter Running Commands by Name

  Every Emacs command has a name that you can use to run it.  Commands
that are used often, or that must be quick to type, are also bound to
keys---short sequences of characters---for convenient use.  You can
run them by name if you don't remember the keys.  Other Emacs commands
that do not need to be quick are not bound to keys; the only way to
run them is by name.  @xref{Key Bindings}, for the description of
how to bind commands to keys.

  By convention, a command name consists of one or more words,
separated by hyphens; for example, @code{auto-fill-mode} or
@code{manual-entry}.  The use of English words makes the command name
easier to remember than a key made up of obscure characters, even
though it is more characters to type.

@kindex M-x
  The way to run a command by name is to start with @kbd{M-x}, type the
command name, and finish it with @key{RET}.  @kbd{M-x} uses the
minibuffer to read the command name.  @key{RET} exits the minibuffer and
runs the command.  The string @samp{M-x} appears at the beginning of the
minibuffer as a @dfn{prompt} to remind you to enter the name of a
command to be run.  @xref{Minibuffer}, for full information on the
features of the minibuffer.

  You can use completion to enter the command name.  For example, you
can invoke the command @code{forward-char} by name by typing either

@example
M-x forward-char @key{RET}
@end example

@noindent
or

@example
M-x forw @key{TAB} c @key{RET}
@end example

@noindent
Note that @code{forward-char} is the same command that you invoke with
the key @kbd{C-f}.  You can run any Emacs command by name using
@kbd{M-x}, whether or not any keys are bound to it.

  If you type @kbd{C-g} while the command name is being read, you cancel
the @kbd{M-x} command and get out of the minibuffer, ending up at top level.

  To pass a numeric argument to the command you are invoking with
@kbd{M-x}, specify the numeric argument before the @kbd{M-x}.  @kbd{M-x}
passes the argument along to the command it runs.  The argument value
appears in the prompt while the command name is being read.

@vindex suggest-key-bindings
  If the command you type has a key binding of its own, Emacs mentions
this in the echo area, two seconds after the command finishes (if you
don't type anything else first).  For example, if you type @kbd{M-x
forward-word}, the message says that you can run the same command more
easily by typing @kbd{M-f}.  You can turn off these messages by setting
@code{suggest-key-bindings} to @code{nil}.

  Normally, when describing in this manual a command that is run by
name, we omit the @key{RET} that is needed to terminate the name.  Thus
we might speak of @kbd{M-x auto-fill-mode} rather than @kbd{M-x
auto-fill-mode @key{RET}}.  We mention the @key{RET} only when there is
a need to emphasize its presence, such as when we show the command
together with following arguments.

@findex execute-extended-command
  @kbd{M-x} works by running the command
@code{execute-extended-command}, which is responsible for reading the
name of another command and invoking it.