]> code.delx.au - gnu-emacs/blob - man/m-x.texi
(mouse-avoidance-point-position): Use posn-at-point instead of compute-motion.
[gnu-emacs] / 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, 2006 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 typing the keys, or run them by name if you don't remember
12 the keys. Other Emacs commands that do not need to be quick are not
13 bound to keys; the only way to run them is by name. @xref{Key
14 Bindings}, for the description of 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, that
51 cancels the @kbd{M-x} command and exits the minibuffer, so you end up
52 back 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 after running the command. For example, if you
62 type @kbd{M-x forward-word}, the message says that you can run the
63 same command more easily by typing @kbd{M-f}. You can turn off these
64 messages by setting the variable @code{suggest-key-bindings} to
65 @code{nil}.
66
67 Normally, when describing in this manual a command that is run by
68 name, we omit the @key{RET} that is needed to terminate the name. Thus
69 we might speak of @kbd{M-x auto-fill-mode} rather than @kbd{M-x
70 auto-fill-mode @key{RET}}. We mention the @key{RET} only when there is
71 a need to emphasize its presence, such as when we show the command
72 together 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
77 name of another command and invoking it.
78
79 @ignore
80 arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56
81 @end ignore