(Visiting): filename -> file name.
[bpt/emacs.git] / man / m-x.texi
CommitLineData
6bf7aab6 1@c This is part of the Emacs manual.
b65d8176 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
8d99e09d 3@c 2004, 2005, 2006 Free Software Foundation, Inc.
6bf7aab6
DL
4@c See file emacs.texi for copying conditions.
5@node M-x, Help, Minibuffer, Top
6@chapter Running Commands by Name
7
3c39a24c
RS
8 Every Emacs command has a name that you can use to run it. Commands
9that are used often, or that must be quick to type, are also bound to
10keys---short sequences of characters---for convenient use. You can
9f528ded
RS
11run them by typing the keys, or run them by name if you don't remember
12the keys. Other Emacs commands that do not need to be quick are not
13bound to keys; the only way to run them is by name. @xref{Key
14Bindings}, for the description of how to bind commands to keys.
6bf7aab6 15
3c39a24c 16 By convention, a command name consists of one or more words,
6bf7aab6
DL
17separated by hyphens; for example, @code{auto-fill-mode} or
18@code{manual-entry}. The use of English words makes the command name
3c39a24c
RS
19easier to remember than a key made up of obscure characters, even
20though it is more characters to type.
6bf7aab6
DL
21
22@kindex M-x
23 The way to run a command by name is to start with @kbd{M-x}, type the
24command name, and finish it with @key{RET}. @kbd{M-x} uses the
25minibuffer to read the command name. @key{RET} exits the minibuffer and
26runs the command. The string @samp{M-x} appears at the beginning of the
27minibuffer as a @dfn{prompt} to remind you to enter the name of a
28command to be run. @xref{Minibuffer}, for full information on the
29features of the minibuffer.
30
3c39a24c
RS
31 You can use completion to enter the command name. For example, you
32can invoke the command @code{forward-char} by name by typing either
6bf7aab6
DL
33
34@example
35M-x forward-char @key{RET}
36@end example
37
38@noindent
39or
40
41@example
42M-x forw @key{TAB} c @key{RET}
43@end example
44
45@noindent
46Note that @code{forward-char} is the same command that you invoke with
47the key @kbd{C-f}. You can run any Emacs command by name using
48@kbd{M-x}, whether or not any keys are bound to it.
49
9f528ded
RS
50 If you type @kbd{C-g} while the command name is being read, that
51cancels the @kbd{M-x} command and exits the minibuffer, so you end up
52back at command level.
6bf7aab6
DL
53
54 To pass a numeric argument to the command you are invoking with
55@kbd{M-x}, specify the numeric argument before the @kbd{M-x}. @kbd{M-x}
56passes the argument along to the command it runs. The argument value
57appears in the prompt while the command name is being read.
58
59@vindex suggest-key-bindings
60 If the command you type has a key binding of its own, Emacs mentions
9f528ded
RS
61this in the echo area after running the command. For example, if you
62type @kbd{M-x forward-word}, the message says that you can run the
63same command more easily by typing @kbd{M-f}. You can turn off these
64messages by setting the variable @code{suggest-key-bindings} to
65@code{nil}.
6bf7aab6
DL
66
67 Normally, when describing in this manual a command that is run by
68name, we omit the @key{RET} that is needed to terminate the name. Thus
69we might speak of @kbd{M-x auto-fill-mode} rather than @kbd{M-x
70auto-fill-mode @key{RET}}. We mention the @key{RET} only when there is
71a need to emphasize its presence, such as when we show the command
72together with following arguments.
73
74@findex execute-extended-command
75 @kbd{M-x} works by running the command
76@code{execute-extended-command}, which is responsible for reading the
77name of another command and invoking it.
ab5796a9
MB
78
79@ignore
80 arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56
81@end ignore