Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




9.3.3 Strict Completion

There are three different ways that <RET> can work in completing minibuffers, depending on how the argument will be used.

  • Strict completion is used when it is meaningless to give any argument except one of the known alternatives. For example, when C-x k reads the name of a buffer to kill, it is meaningless to give anything but the name of an existing buffer. 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 was an exact match already, not needing completion. If the text is not an exact match, <RET> does not exit, but it does complete the text. If it completes to an exact match, a second <RET> will exit.

    Cautious completion is used for reading file names for files that must already exist.

  • Permissive completion is used when any string whatever is meaningful, and the list of completion alternatives is just a guide. For example, when C-x C-f reads the name of a file to visit, any file name is allowed, in case you want to create a file. In permissive completion, <RET> takes the text in the minibuffer exactly as given, without completing it.

The completion commands display a list of all possible completions in a window whenever there is more than one possibility for the very next character. Also, typing ? explicitly requests such a list. If the list of completions is long, you can scroll it with C-M-v (see Other Window).

  Published under the terms of the GNU General Public License Design by Interspire