Commit | Line | Data |
---|---|---|
6bf7aab6 DL |
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 | |
6 | ||
3c39a24c RS |
7 | Every Emacs command has a name that you can use to run it. Commands |
8 | that are used often, or that must be quick to type, are also bound to | |
9 | keys---short sequences of characters---for convenient use. You can | |
10 | run them by name if you don't remember the keys. Other Emacs commands | |
11 | that do not need to be quick are not bound to keys; the only way to | |
12 | run them is by name. @xref{Key Bindings}, for the description of | |
b687de0c | 13 | how to bind commands to keys. |
6bf7aab6 | 14 | |
3c39a24c | 15 | By convention, a command name consists of one or more words, |
6bf7aab6 DL |
16 | separated by hyphens; for example, @code{auto-fill-mode} or |
17 | @code{manual-entry}. The use of English words makes the command name | |
3c39a24c RS |
18 | easier to remember than a key made up of obscure characters, even |
19 | though it is more characters to type. | |
6bf7aab6 DL |
20 | |
21 | @kindex M-x | |
22 | The way to run a command by name is to start with @kbd{M-x}, type the | |
23 | command name, and finish it with @key{RET}. @kbd{M-x} uses the | |
24 | minibuffer to read the command name. @key{RET} exits the minibuffer and | |
25 | runs the command. The string @samp{M-x} appears at the beginning of the | |
26 | minibuffer as a @dfn{prompt} to remind you to enter the name of a | |
27 | command to be run. @xref{Minibuffer}, for full information on the | |
28 | features of the minibuffer. | |
29 | ||
3c39a24c RS |
30 | You can use completion to enter the command name. For example, you |
31 | can invoke the command @code{forward-char} by name by typing either | |
6bf7aab6 DL |
32 | |
33 | @example | |
34 | M-x forward-char @key{RET} | |
35 | @end example | |
36 | ||
37 | @noindent | |
38 | or | |
39 | ||
40 | @example | |
41 | M-x forw @key{TAB} c @key{RET} | |
42 | @end example | |
43 | ||
44 | @noindent | |
45 | Note that @code{forward-char} is the same command that you invoke with | |
46 | the key @kbd{C-f}. You can run any Emacs command by name using | |
47 | @kbd{M-x}, whether or not any keys are bound to it. | |
48 | ||
49 | If you type @kbd{C-g} while the command name is being read, you cancel | |
50 | the @kbd{M-x} command and get out of the minibuffer, ending up at top level. | |
51 | ||
52 | To pass a numeric argument to the command you are invoking with | |
53 | @kbd{M-x}, specify the numeric argument before the @kbd{M-x}. @kbd{M-x} | |
54 | passes the argument along to the command it runs. The argument value | |
55 | appears in the prompt while the command name is being read. | |
56 | ||
57 | @vindex suggest-key-bindings | |
58 | If the command you type has a key binding of its own, Emacs mentions | |
59 | this in the echo area, two seconds after the command finishes (if you | |
60 | don't type anything else first). For example, if you type @kbd{M-x | |
61 | forward-word}, the message says that you can run the same command more | |
62 | easily by typing @kbd{M-f}. You can turn off these messages by setting | |
63 | @code{suggest-key-bindings} to @code{nil}. | |
64 | ||
65 | Normally, when describing in this manual a command that is run by | |
66 | name, we omit the @key{RET} that is needed to terminate the name. Thus | |
67 | we might speak of @kbd{M-x auto-fill-mode} rather than @kbd{M-x | |
68 | auto-fill-mode @key{RET}}. We mention the @key{RET} only when there is | |
69 | a need to emphasize its presence, such as when we show the command | |
70 | together with following arguments. | |
71 | ||
72 | @findex execute-extended-command | |
73 | @kbd{M-x} works by running the command | |
74 | @code{execute-extended-command}, which is responsible for reading the | |
75 | name of another command and invoking it. | |
6b61353c KH |
76 | |
77 | @ignore | |
78 | arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56 | |
79 | @end ignore |