Commit | Line | Data |
---|---|---|
6bf7aab6 | 1 | @c This is part of the Emacs manual. |
62eda0e2 | 2 | @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, |
6ed161e1 | 3 | @c 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 | ||
1abade00 RS |
8 | Every Emacs command has a name that you can use to run it. For |
9 | convenience, many commands also have key bindings. You can run those | |
10 | commands by typing the keys, or run them by name. Most Emacs commands | |
11 | have no key bindings, so the only way to run them is by name. | |
12 | (@xref{Key Bindings}, for how to set up key bindings.) | |
6bf7aab6 | 13 | |
3c39a24c | 14 | By convention, a command name consists of one or more words, |
6bf7aab6 | 15 | separated by hyphens; for example, @code{auto-fill-mode} or |
1abade00 RS |
16 | @code{manual-entry}. Command names mostly use complete English words |
17 | to make them easier to remember. | |
6bf7aab6 DL |
18 | |
19 | @kindex M-x | |
1abade00 RS |
20 | To run a command by name, start with @kbd{M-x}, type the command |
21 | name, then terminate it with @key{RET}. @kbd{M-x} uses the minibuffer | |
22 | to read the command name. The string @samp{M-x} appears at the | |
23 | beginning of the minibuffer as a @dfn{prompt} to remind you to enter a | |
24 | command name to be run. @key{RET} exits the minibuffer and runs the | |
25 | command. @xref{Minibuffer}, for more information on the minibuffer. | |
6bf7aab6 | 26 | |
33cd9ed8 | 27 | You can use completion to enter the command name. For example, |
1abade00 | 28 | to invoke the command @code{forward-char}, you can type |
6bf7aab6 DL |
29 | |
30 | @example | |
31 | M-x forward-char @key{RET} | |
32 | @end example | |
33 | ||
34 | @noindent | |
35 | or | |
36 | ||
37 | @example | |
38 | M-x forw @key{TAB} c @key{RET} | |
39 | @end example | |
40 | ||
41 | @noindent | |
42 | Note that @code{forward-char} is the same command that you invoke with | |
1abade00 RS |
43 | the key @kbd{C-f}. The existence of a key binding does not stop you |
44 | from running the command by name. | |
6bf7aab6 | 45 | |
1abade00 RS |
46 | To cancel the @kbd{M-x} and not run a command, type @kbd{C-g} instead |
47 | of entering the command name. This takes you back to command level. | |
6bf7aab6 DL |
48 | |
49 | To pass a numeric argument to the command you are invoking with | |
1abade00 RS |
50 | @kbd{M-x}, specify the numeric argument before @kbd{M-x}. The |
51 | argument value appears in the prompt while the command name is being | |
52 | read, and finally @kbd{M-x} passes the argument to that command. | |
6bf7aab6 DL |
53 | |
54 | @vindex suggest-key-bindings | |
1abade00 RS |
55 | When the command you run with @kbd{M-x} has a key binding, Emacs |
56 | mentions this in the echo area after running the command. For | |
57 | example, if you type @kbd{M-x forward-word}, the message says that you | |
58 | can run the same command by typing @kbd{M-f}. You can turn off these | |
9f528ded RS |
59 | messages by setting the variable @code{suggest-key-bindings} to |
60 | @code{nil}. | |
6bf7aab6 | 61 | |
1abade00 RS |
62 | In this manual, when we speak of running a command by name, we often |
63 | omit the @key{RET} that terminates the name. Thus we might say | |
64 | @kbd{M-x auto-fill-mode} rather than @kbd{M-x auto-fill-mode | |
65 | @key{RET}}. We mention the @key{RET} only for emphasis, such as when | |
66 | the command is followed by arguments. | |
6bf7aab6 DL |
67 | |
68 | @findex execute-extended-command | |
69 | @kbd{M-x} works by running the command | |
70 | @code{execute-extended-command}, which is responsible for reading the | |
71 | name of another command and invoking it. | |
ab5796a9 MB |
72 | |
73 | @ignore | |
74 | arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56 | |
75 | @end ignore |