8.4.1 Completion Example
A simple example may help here. M-x
uses the minibuffer to read the name of a command, so completion works by matching the minibuffer text against the names of existing Emacs commands. Suppose you wish to run the command auto-fill-mode
. You can do that by typing M-x auto-fill-mode RET
, but it is easier to use completion.
If you type M-x a u TAB
, the TAB
looks for completion alternatives (in this case, command names) that start with ‘au
’. There are several, including auto-fill-mode
and autoconf-mode
, but they all begin with auto
, so the ‘au
’ in the minibuffer completes to ‘auto
’. (More commands may be defined in your Emacs session. For example, if a command called authorize-me
was defined, Emacs could only complete as far as ‘aut
’.)
If you type TAB
again immediately, it cannot determine the next character; it could be ‘-
’, ‘a
’, or ‘c
’. So it does not add any characters; instead, TAB
displays a list of all possible completions in another window.
Next, type -f
. The minibuffer now contains ‘auto-f
’, and the only command name that starts with this is auto-fill-mode
. If you now type TAB
, completion fills in the rest of the argument ‘auto-fill-mode
’ into the minibuffer.
Hence, typing just a u TAB - f TAB
allows you to enter ‘auto-fill-mode
’.