GNU Emacs Lisp Reference Manual
This section describes the keymaps, commands and user options used in the minibuffer to do completion.
completing-read uses this value as the local keymap when an exact match of one of the completions is not required. By default, this keymap makes the following bindings: ?minibuffer-completion-helpSPCminibuffer-complete-wordTABminibuffer-completewith other characters bound as in minibuffer-local-map (see Text from Minibuffer).
completing-read uses this value as the local keymap when an exact match of one of the completions is required. Therefore, no keys are bound to exit-minibuffer, the command that exits the minibuffer unconditionally. By default, this keymap makes the following bindings: ?minibuffer-completion-helpSPCminibuffer-complete-wordTABminibuffer-completeLFDminibuffer-complete-and-exitRETminibuffer-complete-and-exitwith other characters bound as in minibuffer-local-map.
completing-read passes to try-completion. It is used by minibuffer completion commands such as minibuffer-complete-word.completing-read passes to try-completion. The variable is also used by the other minibuffer completion functions.minibuffer-complete-word does not add any characters beyond the first character that is not a word constituent. See Syntax Tables.minibuffer-completion-confirm is non-nil. If confirmation is required, it is given by repeating this command immediately---the command is programmed to work without confirmation when run twice in succession.nil, Emacs asks for confirmation of a completion before exiting the minibuffer. The function minibuffer-complete-and-exit checks the value of this variable before it exits.all-completions using the value of the variable minibuffer-completion-table as the collection argument, and the value of minibuffer-completion-predicate as the predicate argument. The list of completions is displayed as text in a buffer named `*Completions*'.standard-output, usually a buffer. (See Read and Print, for more information about streams.) The argument completions is normally a list of completions just returned by all-completions, but it does not have to be. Each element may be a symbol or a string, either of which is simply printed, or a list of two strings, which is printed as if the strings were concatenated. This function is called by minibuffer-completion-help. The most common way to use it is together with with-output-to-temp-buffer, like this:
(with-output-to-temp-buffer "*Completions*"
(display-completion-list
(all-completions (buffer-string) my-alist)))
nil, the completion commands automatically display a list of possible completions whenever nothing can be completed because the next character is not uniquely determined.