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.
|• Basic Completion:||Low-level functions for completing strings.|
|• Minibuffer Completion:||Invoking the minibuffer with completion.|
|• Completion Commands:||Minibuffer commands that do completion.|
|• High-Level Completion:||Convenient special cases of completion (reading buffer names, variable names, etc.).|
|• Reading File Names:||Using completion to read file names and shell commands.|
|• Completion Variables:||Variables controlling completion behavior.|
|• Programmed Completion:||Writing your own completion function.|
|• Completion in Buffers:||Completing text in ordinary buffers.|