Commit | Line | Data |
---|---|---|
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 |
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 | |
9f528ded RS |
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. | |
6bf7aab6 | 15 | |
3c39a24c | 16 | By convention, a command name consists of one or more words, |
6bf7aab6 DL |
17 | separated by hyphens; for example, @code{auto-fill-mode} or |
18 | @code{manual-entry}. The use of English words makes the command name | |
3c39a24c RS |
19 | easier to remember than a key made up of obscure characters, even |
20 | though 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 | |
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 | ||
3c39a24c RS |
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 | |
6bf7aab6 DL |
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 | ||
9f528ded RS |
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. | |
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} | |
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 | |
9f528ded RS |
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}. | |
6bf7aab6 DL |
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. | |
ab5796a9 MB |
78 | |
79 | @ignore | |
80 | arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56 | |
81 | @end ignore |