@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
-@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
+@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
-@node M-x, Help, Minibuffer, Top
+@node M-x
@chapter Running Commands by Name
Every Emacs command has a name that you can use to run it. For
the key @kbd{C-f}. The existence of a key binding does not stop you
from running the command by name.
+@cindex obsolete command
+ When @kbd{M-x} completes on commands, it ignores the commands that
+are declared @dfn{obsolete}; for these, you will have to type their
+full name. Obsolete commands are those for which newer, better
+alternatives exist, and which are slated for removal in some future
+Emacs release.
+
To cancel the @kbd{M-x} and not run a command, type @kbd{C-g} instead
of entering the command name. This takes you back to command level.
example, if you type @kbd{M-x forward-word}, the message says that you
can run the same command by typing @kbd{M-f}. You can turn off these
messages by setting the variable @code{suggest-key-bindings} to
-@code{nil}.
+@code{nil}. The value of @code{suggest-key-bindings} can also be a
+number, in which case Emacs will show the binding for that many
+seconds before removing it from display. The default behavior is to
+display the binding for 2 seconds.
+
+@vindex extended-command-suggest-shorter
+ Commands that don't have key bindings, can still be invoked after
+typing less than their full name at the @samp{M-x} prompt. Emacs
+mentions such shorthands in the echo area if they are significantly
+shorter than the full command name, and
+@code{extended-command-suggest-shorter} is non-@code{nil}. The
+setting of @code{suggest-key-bindings} affects these hints as well.
In this manual, when we speak of running a command by name, we often
omit the @key{RET} that terminates the name. Thus we might say
@kbd{M-x} works by running the command
@code{execute-extended-command}, which is responsible for reading the
name of another command and invoking it.
-
-@ignore
- arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56
-@end ignore