GNU Emacs Manual - M-x

Go to the first, previous, next, last section, table of contents.

# Running Commands by Name

The Emacs commands that are used often or that must be quick to type are bound to keys--short sequences of characters--for convenient use. Other Emacs commands that do not need to be brief are not bound to keys; to run them, you must refer to them by name.

A command name is, by convention, made up of one or more words, separated by hyphens; for example, `auto-fill-mode` or `manual-entry`. The use of English words makes the command name easier to remember than a key made up of obscure characters, even though it is more characters to type.

The way to run a command by name is to start with `M-x`, type the command name, and finish it with `RET`. `M-x` uses the minibuffer to read the command name. `RET` exits the minibuffer and runs the command. The string ``M-x'` appears at the beginning of the minibuffer as a prompt to remind you to enter the name of a command to be run. See section The Minibuffer, for full information on the features of the minibuffer.

You can use completion to enter the command name. For example, the command `forward-char` can be invoked by name by typing

    M-x forward-char RET

or

    M-x forw TAB c RET

Note that `forward-char` is the same command that you invoke with the key `C-f`. You can run any Emacs command by name using `M-x`, whether or not any keys are bound to it.

If you type `C-g` while the command name is being read, you cancel the `M-x` command and get out of the minibuffer, ending up at top level.

To pass a numeric argument to the command you are invoking with `M-x`, specify the numeric argument before the `M-x`. `M-x` passes the argument along to the command it runs. The argument value appears in the prompt while the command name is being read.

If the command you type has a key binding of its own, Emacs mentions this in the echo area, two seconds after the command finishes (if you don't type anything else first). For example, if you type `M-x forward-word`, the message says that you can run the same command more easily by typing `M-f`. You can turn off these messages by setting `suggest-key-bindings` to `nil`.

Normally, when describing in this manual a command that is run by name, we omit the `RET` that is needed to terminate the name. Thus we might speak of `M-x auto-fill-mode` rather than `M-x auto-fill-mode `RET``. We mention the `RET` only when there is a need to emphasize its presence, such as when we show the command together with following arguments.

`M-x` works by running the command `execute-extended-command`, which is responsible for reading the name of another command and invoking it.

Go to the first, previous, next, last section, table of contents.