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 The Emacs commands that are used often or that must be quick to type are
8 bound to keys---short sequences of characters---for convenient use. Other
9 Emacs commands that do not need to be brief are not bound to keys; to run
10 them, you must refer to them by name.
12 A command name is, by convention, made up of one or more words,
13 separated by hyphens; for example, @code{auto-fill-mode} or
14 @code{manual-entry}. The use of English words makes the command name
15 easier to remember than a key made up of obscure characters, even though
16 it is more characters to type.
19 The way to run a command by name is to start with @kbd{M-x}, type the
20 command name, and finish it with @key{RET}. @kbd{M-x} uses the
21 minibuffer to read the command name. @key{RET} exits the minibuffer and
22 runs the command. The string @samp{M-x} appears at the beginning of the
23 minibuffer as a @dfn{prompt} to remind you to enter the name of a
24 command to be run. @xref{Minibuffer}, for full information on the
25 features of the minibuffer.
27 You can use completion to enter the command name. For example, the
28 command @code{forward-char} can be invoked by name by typing
31 M-x forward-char @key{RET}
38 M-x forw @key{TAB} c @key{RET}
42 Note that @code{forward-char} is the same command that you invoke with
43 the key @kbd{C-f}. You can run any Emacs command by name using
44 @kbd{M-x}, whether or not any keys are bound to it.
46 If you type @kbd{C-g} while the command name is being read, you cancel
47 the @kbd{M-x} command and get out of the minibuffer, ending up at top level.
49 To pass a numeric argument to the command you are invoking with
50 @kbd{M-x}, specify the numeric argument before the @kbd{M-x}. @kbd{M-x}
51 passes the argument along to the command it runs. The argument value
52 appears in the prompt while the command name is being read.
54 @vindex suggest-key-bindings
55 If the command you type has a key binding of its own, Emacs mentions
56 this in the echo area, two seconds after the command finishes (if you
57 don't type anything else first). For example, if you type @kbd{M-x
58 forward-word}, the message says that you can run the same command more
59 easily by typing @kbd{M-f}. You can turn off these messages by setting
60 @code{suggest-key-bindings} to @code{nil}.
62 Normally, when describing in this manual a command that is run by
63 name, we omit the @key{RET} that is needed to terminate the name. Thus
64 we might speak of @kbd{M-x auto-fill-mode} rather than @kbd{M-x
65 auto-fill-mode @key{RET}}. We mention the @key{RET} only when there is
66 a need to emphasize its presence, such as when we show the command
67 together with following arguments.
69 @findex execute-extended-command
70 @kbd{M-x} works by running the command
71 @code{execute-extended-command}, which is responsible for reading the
72 name of another command and invoking it.