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