GNU Emacs Lisp Reference Manual
Completion is a feature that fills in the rest of a name
starting from an abbreviation for it. Completion works by comparing the
user's input against a list of valid names and determining how much of
the name is determined uniquely by what the user has typed. For
example, when you type C-x b (
switch-to-buffer) and then
type the first few letters of the name of the buffer to which you wish
to switch, and then type TAB (
extends the name as far as it can.
Standard Emacs commands offer completion for names of symbols, files,
buffers, and processes; with the functions in this section, you can
implement completion for other kinds of names.
try-completion function is the basic primitive for
completion: it returns the longest determined completion of a given
initial string, with a given set of strings to match against.
completing-read provides a higher-level interface
for completion. A call to
completing-read specifies how to
determine the list of valid names. The function then activates the
minibuffer with a local keymap that binds a few keys to commands useful
for completion. Other functions provide convenient simple interfaces
for reading certain kinds of names with completion.
(These are too low level to use the minibuffer.)
(reading buffer name, file name, etc.)