[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
9.3.3 Strict Completion
There are three different ways that <RET> can do completion, depending on how the argument will be used.
- Strict completion accepts only known completion candidates. For example, when C-x k reads the name of a buffer to kill, only the name of an existing buffer makes sense. In strict completion, <RET> refuses to exit if the text in the minibuffer does not complete to an exact match.
-
Cautious completion is similar to strict completion, except that
<RET> exits only if the text is an already exact match.
Otherwise, <RET> does not exit, but it does complete the text. If
that completes to an exact match, a second <RET> will exit.
Cautious completion is used for reading file names for files that must already exist, for example.
- Permissive completion allows any input; the completion candidates are just suggestions. For example, when C-x C-f reads the name of a file to visit, any file name is allowed, including nonexistent file (in case you want to create a file). In permissive completion, <RET> does not complete, it just submits the argument as you have entered it.
The completion commands display a list of all possible completions whenever they can't determine even one more character by completion. Also, typing ? explicitly requests such a list. You can scroll the list with C-M-v (see section Using Other Windows).