Previous: Completion Styles, Up: Completion [Contents][Index]

#### 8.4.5 Completion Options

Case is significant when completing case-sensitive arguments, such as command names. For example, when completing command names, ‘`AU`’ does not complete to ‘`auto-fill-mode`’. Case differences are ignored when completing arguments in which case does not matter.

When completing file names, case differences are ignored if the variable `read-file-name-completion-ignore-case` is non-`nil`. The default value is `nil` on systems that have case-sensitive file-names, such as GNU/Linux; it is non-`nil` on systems that have case-insensitive file-names, such as Microsoft Windows. When completing buffer names, case differences are ignored if the variable `read-buffer-completion-ignore-case` is non-`nil`; the default is `nil`.

When completing file names, Emacs usually omits certain alternatives that are considered unlikely to be chosen, as determined by the list variable `completion-ignored-extensions`. Each element in the list should be a string; any file name ending in such a string is ignored as a completion alternative. Any element ending in a slash (`/`) represents a subdirectory name. The standard value of `completion-ignored-extensions` has several elements including `".o"`, `".elc"`, and `"~"`. For example, if a directory contains ‘`foo.c`’ and ‘`foo.elc`’, ‘`foo`’ completes to ‘`foo.c`’. However, if all possible completions end in otherwise-ignored strings, they are not ignored: in the previous example, ‘`foo.e`’ completes to ‘`foo.elc`’. Emacs disregards `completion-ignored-extensions` when showing completion alternatives in the completion list.

Shell completion is an extended version of filename completion, see Shell Options.

If `completion-auto-help` is set to `nil`, the completion commands never display the completion list buffer; you must type `?` to display the list. If the value is `lazy`, Emacs only shows the completion list buffer on the second attempt to complete. In other words, if there is nothing to complete, the first `TAB` echoes ‘`Next char not unique`’; the second `TAB` shows the completion list buffer.

If `completion-cycle-threshold` is non-`nil`, completion commands can cycle through completion alternatives. Normally, if there is more than one completion alternative for the text in the minibuffer, a completion command completes up to the longest common substring. If you change `completion-cycle-threshold` to `t`, the completion command instead completes to the first of those completion alternatives; each subsequent invocation of the completion command replaces that with the next completion alternative, in a cyclic manner. If you give `completion-cycle-threshold` a numeric value n, completion commands switch to this cycling behavior only when there are n or fewer alternatives.

Previous: Completion Styles, Up: Completion [Contents][Index]