(widget-move): Don't loop infinitely when there is
[emacs.git] / man / m-x.texi
blobfca7d101a97f4205829453048e174456ffa76701
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
3 @c See file emacs.texi for copying conditions.
4 @node M-x, Help, Minibuffer, Top
5 @chapter Running Commands by Name
7   Every Emacs command has a name that you can use to run it.  Commands
8 that are used often, or that must be quick to type, are also bound to
9 keys---short sequences of characters---for convenient use.  You can
10 run them by name if you don't remember the keys.  Other Emacs commands
11 that do not need to be quick are not bound to keys; the only way to
12 run them is by name.  @xref{Key Bindings}, for the description of
13 how to bind commands to keys.
15   By convention, a command name consists of one or more words,
16 separated by hyphens; for example, @code{auto-fill-mode} or
17 @code{manual-entry}.  The use of English words makes the command name
18 easier to remember than a key made up of obscure characters, even
19 though it is more characters to type.
21 @kindex M-x
22   The way to run a command by name is to start with @kbd{M-x}, type the
23 command name, and finish it with @key{RET}.  @kbd{M-x} uses the
24 minibuffer to read the command name.  @key{RET} exits the minibuffer and
25 runs the command.  The string @samp{M-x} appears at the beginning of the
26 minibuffer as a @dfn{prompt} to remind you to enter the name of a
27 command to be run.  @xref{Minibuffer}, for full information on the
28 features of the minibuffer.
30   You can use completion to enter the command name.  For example, you
31 can invoke the command @code{forward-char} by name by typing either
33 @example
34 M-x forward-char @key{RET}
35 @end example
37 @noindent
40 @example
41 M-x forw @key{TAB} c @key{RET}
42 @end example
44 @noindent
45 Note that @code{forward-char} is the same command that you invoke with
46 the key @kbd{C-f}.  You can run any Emacs command by name using
47 @kbd{M-x}, whether or not any keys are bound to it.
49   If you type @kbd{C-g} while the command name is being read, you cancel
50 the @kbd{M-x} command and get out of the minibuffer, ending up at top level.
52   To pass a numeric argument to the command you are invoking with
53 @kbd{M-x}, specify the numeric argument before the @kbd{M-x}.  @kbd{M-x}
54 passes the argument along to the command it runs.  The argument value
55 appears in the prompt while the command name is being read.
57 @vindex suggest-key-bindings
58   If the command you type has a key binding of its own, Emacs mentions
59 this in the echo area, two seconds after the command finishes (if you
60 don't type anything else first).  For example, if you type @kbd{M-x
61 forward-word}, the message says that you can run the same command more
62 easily by typing @kbd{M-f}.  You can turn off these messages by setting
63 @code{suggest-key-bindings} to @code{nil}.
65   Normally, when describing in this manual a command that is run by
66 name, we omit the @key{RET} that is needed to terminate the name.  Thus
67 we might speak of @kbd{M-x auto-fill-mode} rather than @kbd{M-x
68 auto-fill-mode @key{RET}}.  We mention the @key{RET} only when there is
69 a need to emphasize its presence, such as when we show the command
70 together with following arguments.
72 @findex execute-extended-command
73   @kbd{M-x} works by running the command
74 @code{execute-extended-command}, which is responsible for reading the
75 name of another command and invoking it.