aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorChong Yidong <[email protected]>2011-10-08 11:08:50 -0400
committerChong Yidong <[email protected]>2011-10-08 11:08:50 -0400
commit27a16462454d7f45a0b1c65c0b0b2ed76091e11b (patch)
tree926c6b0dab8b9854b0c9dfe951766f62a6430127 /doc
parent235ce86fea5c1b5c024da7e05a2f50aa7f22a992 (diff)
Document completion styles in Emacs manual; copyedits.
* doc/emacs/mini.texi (Minibuffer File): Minor copyedits. Use xref to Remote Files node instead of linking directly to the Tramp manual. (Minibuffer Edit): Add xref to Blank Lines. (Completion): Add xref to Symbol Completion. Remove redundant example, which is repeated in the next node. (Completion Commands): Minor clarifications. (Completion Styles): New node, split from Completion Commands. Document substring and initials styles. (Strict Completion): Remove information duplicated in other nodes. (Completion Options): Consolidate case difference discussion here. * doc/emacs/files.texi (File Names): Add index entries. * doc/emacs/help.texi (Help Mode): Fix kindex entries.
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog17
-rw-r--r--doc/emacs/emacs.texi1
-rw-r--r--doc/emacs/files.texi4
-rw-r--r--doc/emacs/help.texi4
-rw-r--r--doc/emacs/mini.texi372
5 files changed, 223 insertions, 175 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index dc331eeb61..a8238f24ae 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,20 @@
+2011-10-08 Chong Yidong <[email protected]>
+
+ * mini.texi (Minibuffer File): Minor copyedits. Use xref to
+ Remote Files node instead of linking directly to the Tramp manual.
+ (Minibuffer Edit): Add xref to Blank Lines.
+ (Completion): Add xref to Symbol Completion. Remove redundant
+ example, which is repeated in the next node.
+ (Completion Commands): Minor clarifications.
+ (Completion Styles): New node, split from Completion Commands.
+ Document substring and initials styles.
+ (Strict Completion): Remove information duplicated in other nodes.
+ (Completion Options): Consolidate case difference discussion here.
+
+ * help.texi (Help Mode): Fix kindex entries.
+
+ * files.texi (File Names): Add index entries.
+
2011-10-07 Chong Yidong <[email protected]>
* basic.texi (Inserting Text): Add xref to Completion. Add
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index bb675b61cf..2107b6926b 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -282,6 +282,7 @@ Completion
* Completion Example:: Examples of using completion.
* Completion Commands:: A list of completion commands.
* Strict Completion:: Different types of completion.
+* Completion Styles:: How completion matches are chosen.
* Completion Options:: Options for completion.
Help
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 2672c30363..433bf61759 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -54,11 +54,13 @@ Note that file name completion ignores file names whose extensions
appear in the variable @code{completion-ignored-extensions}
(@pxref{Completion Options}).
+@cindex default file name
For most operations, there is a @dfn{default file name} which is
used if you type just @key{RET} to enter an empty argument. Normally,
the default file name is the name of the file visited in the current
buffer.
+@cindex default directory
@vindex default-directory
@vindex insert-default-directory
Each buffer has a @dfn{default directory} which is normally the same
@@ -1863,7 +1865,7 @@ then specifying @file{/tmp/foo*bar} will visit only
@cindex file name caching
@cindex cache of file names
@pindex find
-@kindex C-@key{TAB}
+@kindex C-TAB
@findex file-cache-minibuffer-complete
You can use the @dfn{file name cache} to make it easy to locate a
file by name, without having to remember exactly where it is located.
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 9ff995138f..daa7ee4396 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -443,9 +443,9 @@ your steps.
the @code{browse-url} command to view the page in the browser you
choose. @xref{Browse-URL}.
-@kindex @key{TAB} @r{(Help mode)}
+@kindex TAB @r{(Help mode)}
@findex help-next-ref
-@kindex S-@key{TAB} @r{(Help mode)}
+@kindex S-TAB @r{(Help mode)}
@findex help-previous-ref
There are convenient commands to move point to cross references in
the help text. @key{TAB} (@code{help-next-ref}) moves point down to
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index da1e88ab33..a9b0394e9b 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -15,9 +15,9 @@ argument text.
@cindex prompt
When the minibuffer is in use, it appears in the echo area, with a
-cursor. The minibuffer display starts with a @dfn{prompt} in a
-distinct color, usually ending with a colon. The prompt states what
-kind of input is expected, and how it will be used.
+cursor. The minibuffer starts with a @dfn{prompt} in a distinct
+color, usually ending with a colon. The prompt states what kind of
+input is expected, and how it will be used.
The simplest way to enter a minibuffer argument is to type the text,
then @key{RET} to submit the argument and exit the minibuffer. You
@@ -26,19 +26,17 @@ typing @kbd{C-g}.
@cindex default argument
Sometimes, a @dfn{default argument} appears in the prompt, inside
-parentheses before the colon. The default will be used as the
-argument value if you just type @key{RET}. For example, commands that
-read buffer names usually show a buffer name as the default; you can
-type @key{RET} to operate on that default buffer.
+parentheses before the colon. This default will be used as the
+argument if you just type @key{RET}. For example, commands that read
+buffer names usually show a buffer name as the default; you can type
+@key{RET} to operate on that default buffer.
Since the minibuffer appears in the echo area, it can conflict with
-other uses of the echo area. If an error occurs while the minibuffer
-is active, the error message hides the minibuffer for a few seconds,
-or until you type something; then the minibuffer comes back. If a
-command such as @kbd{C-x =} needs to display a message in the echo
-area, the message hides the minibuffer for a few seconds, or until you
-type something; then the minibuffer comes back. While the minibuffer
-is in use, keystrokes do not echo.
+other uses of the echo area. If an error message or an informative
+message is emitted while the minibuffer is active, the message hides
+the minibuffer for a few seconds, or until you type something; then
+the minibuffer comes back. While the minibuffer is in use, keystrokes
+do not echo.
@menu
* Minibuffer File:: Entering file names with the minibuffer.
@@ -52,6 +50,7 @@ is in use, keystrokes do not echo.
@node Minibuffer File
@section Minibuffers for File Names
+@cindex default directory
Commands such as @kbd{C-x C-f} (@code{find-file}) use the minibuffer
to read a file name argument (@pxref{Basic Files}). When the
minibuffer is used to read a file name, it typically starts out with
@@ -92,7 +91,7 @@ Emacs interprets a double slash as ``ignore everything before the
second slash in the pair.'' In the example above,
@file{/u2/emacs/src/} is ignored, so the argument you supplied is
@file{/etc/termcap}. The ignored part of the file name is dimmed if
-the terminal allows it (to disable this dimming, turn off File Name
+the terminal allows it. (To disable this dimming, turn off File Name
Shadow mode with the command @kbd{M-x file-name-shadow-mode}.)
@cindex home directory shorthand
@@ -108,11 +107,11 @@ directory name in front of the @file{~} is ignored: thus,
home directory, Emacs uses several alternatives. For MS-Windows, see
@ref{Windows HOME}; for MS-DOS, see
@ifnottex
-@ref{MS-DOS File Names, HOME on MS-DOS}.
+@ref{MS-DOS File Names}.
@end ifnottex
@iftex
-@ref{MS-DOS File Names, HOME on MS-DOS,, emacs, the Emacs Manual}, in
-the main Emacs manual.
+@ref{MS-DOS File Names, HOME on MS-DOS,, emacs, the digital version of
+the Emacs Manual}.
@end iftex
On these systems, the @file{~@var{user-id}/} construct is supported
only for the current user, i.e., only if @var{user-id} is the current
@@ -125,9 +124,8 @@ file names, change the variable @code{insert-default-directory} to
Nonetheless, relative file name arguments are still interpreted based
on the same default directory.
- For rules how to read remote file names in the minibuffer, see
-@ref{Filename completion, file name completion,, tramp}, in the Tramp
-manual.
+ You can also enter remote file names in the minibuffer.
+@xref{Remote Files}.
@node Minibuffer Edit
@section Editing in the Minibuffer
@@ -136,17 +134,17 @@ manual.
usual Emacs commands are available for editing the argument text.
(The prompt, however, is @dfn{read-only}, and cannot be changed.)
- Since @key{RET} in the minibuffer is defined to exit the minibuffer,
-you can't use it to insert a newline in the minibuffer. To do that,
-type @kbd{C-o} or @kbd{C-q C-j}. (The newline character is really the
-@acronym{ASCII} character control-J.)
+ Since @key{RET} in the minibuffer submits the argument, you can't
+use it to insert a newline. You can do that with @kbd{C-q C-j}, which
+inserts a @kbd{C-j} control character, which is formally equivalent to
+a newline character (@pxref{Inserting Text}). Alternatively, you can
+use the @kbd{C-o} (@code{open-line}) command (@pxref{Blank Lines}).
- Inside a minibuffer, the keys @kbd{@key{TAB}}, @kbd{@key{SPC}}, and
-@kbd{@key{?}} are often bound to commands that perform
-@dfn{completion}. @xref{Completion}. You can use @kbd{C-q}
-(@code{quoted-insert}) to insert a @key{TAB}, @key{SPC}, or @key{?}
-character. For example, @kbd{C-q @key{TAB}} inserts a @key{TAB}
-character. @xref{Inserting Text}.
+ Inside a minibuffer, the keys @key{TAB}, @key{SPC}, and @kbd{?} are
+often bound to @dfn{completion commands}, which allow you to easily
+fill in the desired text without typing all of it. @xref{Completion}.
+As with @key{RET}, you can use @kbd{C-q} to insert a @key{TAB},
+@key{SPC}, or @samp{?} character.
For convenience, @kbd{C-a} (@code{move-beginning-of-line}) in a
minibuffer moves point to the beginning of the argument text, not the
@@ -203,35 +201,28 @@ set the variable @code{enable-recursive-minibuffers} to @code{t}.
@c it, the tutorial needs to be adjusted.
@cindex completion
- Sometimes, you can use a feature called @dfn{completion} to help you
-enter arguments. This means that after you type part of the argument,
-Emacs can fill in the rest, or some of it, based on what you have
-typed so far.
+ You can often use a feature called @dfn{completion} to help enter
+arguments. This means that after you type part of the argument, Emacs
+can fill in the rest, or some of it, based on what was typed so far.
+@cindex completion alternative
When completion is available, certain keys (usually @key{TAB},
-@key{RET}, and @key{SPC}) are rebound to complete the text in the
-minibuffer into a longer string chosen from a set of @dfn{completion
-alternatives}. The set of completion alternatives depends on the
-command that requested the argument, and on what you have typed so
-far. In addition, you can usually type @kbd{?} to display a list of
-possible completions.
-
- For example, @kbd{M-x} uses the minibuffer to read the name of a
-command, so completion works by matching the minibuffer text against
-the names of existing Emacs commands. So, to run the command
-@code{insert-buffer}, you can type @kbd{M-x ins @key{SPC} b @key{RET}}
-instead of the full @kbd{M-x insert-buffer @key{RET}}.
-
- Case is significant in completion when it is significant in the
-argument you are entering, such as command names. Thus,
-@samp{insert-buffer} is not a valid completion for @samp{IN}.
-Completion ignores case distinctions for certain arguments in which
-case does not matter.
+@key{RET}, and @key{SPC}) are rebound in the minibuffer to special
+completion commands (@pxref{Completion Commands}). These commands
+attempt to complete the text in the minibuffer, based on a set of
+@dfn{completion alternatives} provided by the command that requested
+the argument. You can usually type @kbd{?} to see a list of
+completion alternatives.
+
+ Although completion is usually done in the minibuffer, the feature
+is sometimes available in ordinary buffers too. @xref{Symbol
+Completion}.
@menu
* Example: Completion Example. Examples of using completion.
* Commands: Completion Commands. A list of completion commands.
* Strict Completion:: Different types of completion.
+* Completion Styles:: How completion matches are chosen.
* Options: Completion Options. Options for completion.
@end menu
@@ -239,24 +230,31 @@ case does not matter.
@subsection Completion Example
@kindex TAB @r{(completion)}
- A concrete example may help here. If you type @kbd{M-x a u
-@key{TAB}}, the @key{TAB} looks for alternatives (in this case,
-command names) that start with @samp{au}. There are several,
-including @code{auto-fill-mode} and @code{autoconf-mode}, but they all
-begin with @code{auto}, so the @samp{au} in the minibuffer completes
-to @samp{auto}.
+ A simple example may help here. @kbd{M-x} uses the minibuffer to
+read the name of a command, so completion works by matching the
+minibuffer text against the names of existing Emacs commands. Suppose
+you wish to run the command @code{auto-fill-mode}. You can do that by
+typing @kbd{M-x auto-fill-mode @key{RET}}, but it is easier to use
+completion.
+
+ If you type @kbd{M-x a u @key{TAB}}, the @key{TAB} looks for
+completion alternatives (in this case, command names) that start with
+@samp{au}. There are several, including @code{auto-fill-mode} and
+@code{autoconf-mode}, but they all begin with @code{auto}, so the
+@samp{au} in the minibuffer completes to @samp{auto}.
If you type @key{TAB} again immediately, it cannot determine the
next character; it could be @samp{-}, @samp{a}, or @samp{c}. So it
does not add any characters; instead, @key{TAB} displays a list of all
possible completions in another window.
- Next, type @kbd{- f}. The minibuffer now contains @samp{auto-f},
-and the only command name that starts with this is
-@code{auto-fill-mode}. If you now type @key{TAB}, completion fills in
-the rest of the argument @samp{auto-fill-mode} into the minibuffer.
-You have been able to enter @samp{auto-fill-mode} by typing just
-@kbd{a u @key{TAB} - f @key{TAB}}.
+ Next, type @kbd{-f}. The minibuffer now contains @samp{auto-f}, and
+the only command name that starts with this is @code{auto-fill-mode}.
+If you now type @key{TAB}, completion fills in the rest of the
+argument @samp{auto-fill-mode} into the minibuffer.
+
+ Hence, typing just @kbd{a u @key{TAB} - f @key{TAB}} allows you to
+enter @samp{auto-fill-mode}.
@node Completion Commands
@subsection Completion Commands
@@ -272,60 +270,24 @@ complete, display a list of possible completions
(@code{minibuffer-complete}).
@item @key{SPC}
Complete up to one word from the minibuffer text before point
-(@code{minibuffer-complete-word}). @key{SPC} for completion is not
-available when entering a file name, since file names often include
-spaces.
+(@code{minibuffer-complete-word}). This command is not available for
+arguments that often include spaces, such as file names.
@item @key{RET}
Submit the text in the minibuffer as the argument, possibly completing
-first as described in the next
-@iftex
-subsection (@code{minibuffer-complete-and-exit}).
-@end iftex
-@ifnottex
-node (@code{minibuffer-complete-and-exit}). @xref{Strict Completion}.
-@end ifnottex
+first (@code{minibuffer-complete-and-exit}). @xref{Strict Completion}.
@item ?
-Display a list of possible completions of the text before point
-(@code{minibuffer-completion-help}).
+Display a list of completions (@code{minibuffer-completion-help}).
@end table
-@kindex TAB
+@kindex TAB @r{(completion)}
@findex minibuffer-complete
@key{TAB} (@code{minibuffer-complete}) is the most fundamental
-completion command. It searches for all possible completion
-alternatives that match the existing minibuffer text, and attempts to
-complete as much as it can. The matching of completion alternatives
-to the minibuffer text is performed according to somewhat intricate
-rules, which are designed so that plausible completions are offered
-under most circumstances. A valid completion alternative must satisfy
-the following criteria:
-
-@itemize @bullet
-@item
-The minibuffer text before point must be the same as the beginning of
-the completion alternative. If there is any minibuffer text after
-point, it must be a substring of the remainder of the completion
-alternative.
-
-@item
-If no completion alternative satisfies the above rules, try using
-@dfn{partial completion} rules: divide the minibuffer text into words
-separated by hyphens or spaces, and complete each word separately.
-Thus, when completing command names, @samp{em-l-m} completes to
-@samp{emacs-lisp-mode}.
-
-@item
-If there is still no completion alternative, try the first rule again,
-but ignore the minibuffer text after point (i.e., don't try matching
-it).
-@end itemize
-
-@noindent
-When performing these comparisons, a @samp{*} in the minibuffer text
-acts as a @dfn{wildcard}---it matches any character at the
-corresponding position in the completion alternative.
+completion command. It searches for all possible completions that
+match the existing minibuffer text, and attempts to complete as much
+as it can. @xref{Completion Styles}, for how completion alternatives
+are chosen.
-@kindex SPC
+@kindex SPC @r{(completion)}
@findex minibuffer-complete-word
@key{SPC} (@code{minibuffer-complete-word}) completes like
@key{TAB}, but only up to the next hyphen or space. If you have
@@ -334,50 +296,52 @@ completion is @samp{auto-fill-mode}, but it only inserts @samp{ill-},
giving @samp{auto-fill-}. Another @key{SPC} at this point completes
all the way to @samp{auto-fill-mode}.
+@kindex ? @r{(completion)}
+@cindex completion list
If @key{TAB} or @key{SPC} is unable to complete, it displays a list
-of possible completions (if there are any) in a separate window. You
-can choose a completion from this list using the following commands:
+of matching completion alternatives (if there are any) in another
+window. You can display the same list with @kbd{?}
+(@code{minibuffer-completion-help}). The following commands can be
+used with the completion list:
@table @kbd
@findex mouse-choose-completion
@item Mouse-1
@itemx Mouse-2
-Clicking mouse button 1 or 2 on a completion possibility chooses that
-completion (@code{mouse-choose-completion}).
+Clicking mouse button 1 or 2 on a completion alternative chooses it
+(@code{mouse-choose-completion}).
@findex switch-to-completions
@item M-v
@itemx @key{PageUp}
@itemx @key{prior}
Typing @kbd{M-v}, while in the minibuffer, selects the window showing
-the completion list buffer (@code{switch-to-completions}). This paves
-the way for using the commands below. Typing @key{PageUp} or
-@key{prior} does the same, as does selecting that window in other
-ways.
+the completion list (@code{switch-to-completions}). This paves the
+way for using the commands below. @key{PageUp} or @key{prior} does
+the same. You can also select the window in other ways
+(@pxref{Windows}).
@findex choose-completion
@item @key{RET}
-Typing @key{RET}, while in the completion list buffer, chooses the
-completion that point is in or next to (@code{choose-completion}). To
-use this command, you must first switch to the completion list window.
+While in the completion list buffer, this chooses the completion at
+point (@code{choose-completion}).
@findex next-completion
@item @key{Right}
-Typing the right-arrow key @key{Right}, while in the completion list
-buffer, moves point to the following completion possibility
-(@code{next-completion}).
+While in the completion list buffer, this moves point to the following
+completion alternative (@code{next-completion}).
@findex previous-completion
@item @key{Left}
-Typing the left-arrow key @key{Left}, while in the completion list
-buffer, moves point to the previous completion possibility
-(@code{previous-completion}).
+While in the completion list buffer, this moves point to the previous
+completion alternative (@code{previous-completion}).
@end table
@node Strict Completion
@subsection Strict Completion
- There are three different ways that @key{RET} can do completion,
+ There are three ways that the @key{RET}
+(@code{minibuffer-complete-and-exit}) completion command can act,
depending on how the argument will be used.
@itemize @bullet
@@ -406,14 +370,117 @@ completion, @key{RET} does not complete, it just submits the argument
as you have entered it.
@end itemize
- The completion commands display a list of all possible completions
-whenever they can't determine even one more character by completion.
-Also, typing @kbd{?} explicitly requests such a list. You can scroll
-the list with @kbd{C-M-v} (@pxref{Other Window}).
+ Like the other completion commands, @key{RET} displays a list of all
+possible completions whenever it is supposed to complete but is unable
+to complete any further.
+
+@node Completion Styles
+@subsection How Completion Alternatives Are Chosen
+@cindex completion style
+
+ Completion commands work by narrowing a large list of possible
+completion alternatives to a smaller subset that ``matches'' what you
+have typed in the minibuffer. In @ref{Completion Example}, we gave a
+simple example of such matching. The procedure of determining what
+constitutes a ``match'' is quite intricate. Emacs attempts to offer
+plausible completions under most circumstances.
+
+ Emacs performs completion using one or more @dfn{completion
+styles}---sets of criteria for matching minibuffer text to completion
+alternatives. During completion, Emacs tries each completion style in
+turn. If a style yields one or more matches, that is used as the list
+of completion alternatives. If a style produces no matches, Emacs
+falls back on the next style.
+
+@vindex completion-styles
+ The list variable @code{completion-styles} specifies the completion
+styles to use. Each list element is the name of a completion style (a
+Lisp symbol). The default completion styles are (in order):
+
+@table @code
+@item basic
+A matching completion alternative must have the same beginning as the
+text in the minibuffer before point. Furthermore, if there is any
+text in the minibuffer after point, the rest of the completion
+alternative must contain that text as a substring.
+
+@findex partial completion
+@item partial-completion
+This aggressive completion style divides the minibuffer text into
+words separated by hyphens or spaces, and completes each word
+separately. (For example, when completing command names,
+@samp{em-l-m} completes to @samp{emacs-lisp-mode}.)
+
+Furthermore, a @samp{*} in the minibuffer text is treated as a
+@dfn{wildcard}---it matches any character at the corresponding
+position in the completion alternative.
+
+@item emacs22
+This completion style is similar to @code{basic}, except that it
+ignores the text in the minibuffer after point. It is so-named
+because it corresponds to the completion behavior in Emacs 22 and
+earlier.
+@end table
+
+@noindent
+The following additional completion styles are also defined, and you
+can add them to @code{completion-styles} if you wish
+(@pxref{Customization}):
+
+@table @code
+@item substring
+A matching completion alternative must contain the text in the
+minibuffer before point, and the text in the minibuffer after point,
+as substrings (in that same order).
+
+Thus, if the text in the minibuffer is @samp{foobar}, with point
+between @samp{foo} and @samp{bar}, that matches
+@samp{@var{a}foo@var{b}bar@var{c}}, where @var{a}, @var{b}, and
+@var{c} can be any string including the empty string.
+
+@item initials
+This very aggressive completion style attempts to complete acronyms
+and initialisms. For example, when completing command names, it
+matches @samp{lch} to @samp{list-command-history}.
+@end table
@node Completion Options
@subsection Completion Options
+@cindex case-sensitivity and completion
+@cindex case in completion
+ Case is significant when completing case-sensitive arguments, such
+as command names. For example, when completing command names,
+@samp{AU} does not complete to @samp{auto-fill-mode}. Case
+differences are ignored when completing arguments in which case does
+not matter.
+
+@vindex read-file-name-completion-ignore-case
+@vindex read-buffer-completion-ignore-case
+ When completing file names, case differences are ignored if the
+variable @code{read-file-name-completion-ignore-case} is
+non-@code{nil}. The default value is @code{nil} on systems that have
+case-sensitive file-names, such as GNU/Linux; it is non-@code{nil} on
+systems that have case-insensitive file-names, such as Microsoft
+Windows. When completing buffer names, case is significant by
+default; to ignore case differences, change the variable
+@code{read-buffer-completion-ignore-case} to a non-@code{nil} value.
+
+@vindex completion-ignored-extensions
+@cindex ignored file names, in completion
+ When completing file names, Emacs usually omits certain alternatives
+that are considered unlikely to be chosen. The variable
+@code{completion-ignored-extensions} contains a list of strings; a
+file name ending in any of those strings is ignored as a completion
+alternative. The standard value of this variable has several elements
+including @code{".o"}, @code{".elc"}, and @code{"~"}. For example, if
+a directory contains @samp{foo.c} and @samp{foo.elc}, @samp{foo}
+completes to @samp{foo.c}. However, if @emph{all} possible
+completions end in ``ignored'' strings, they are not ignored: in the
+previous example, @samp{foo.e} completes to @samp{foo.elc}.
+Displaying the completion list disregards
+@code{completion-ignored-extensions}; all completions are listed.
+
@vindex completion-auto-help
If @code{completion-auto-help} is set to @code{nil}, the completion
commands never display the completion list buffer; you must type
@@ -423,51 +490,12 @@ In other words, if there is nothing to complete, the first @key{TAB}
echoes @samp{Next char not unique}; the second @key{TAB} does the
completion list buffer.
-@vindex completion-ignored-extensions
-@cindex ignored file names, in completion
- When completing file names, certain file names are usually ignored.
-The variable @code{completion-ignored-extensions} contains a list of
-strings; a file name ending in any of those strings is ignored as a
-completion candidate. The standard value of this variable has several
-elements including @code{".o"}, @code{".elc"}, and @code{"~"}. For
-example, if a directory contains @samp{foo.c} and @samp{foo.elc},
-@samp{foo} completes to @samp{foo.c}. However, if @emph{all} possible
-completions end in ``ignored'' strings, they are not ignored: in the
-previous example, @samp{foo.e} completes to @samp{foo.elc}.
-Displaying a list of possible completions disregards
-@code{completion-ignored-extensions}; it shows them all.
-
If an element of @code{completion-ignored-extensions} ends in a
slash (@file{/}), it's a subdirectory name; that directory and its
contents are ignored. Elements of
@code{completion-ignored-extensions} that do not end in a slash are
ordinary file names.
-@cindex case-sensitivity and completion
-@vindex read-file-name-completion-ignore-case
-@vindex read-buffer-completion-ignore-case
- When completing file names, Emacs ignores case differences if the
-variable @code{read-file-name-completion-ignore-case} is
-non-@code{nil}. The default value is @code{nil} on systems that have
-case-sensitive file-names, such as GNU/Linux; it is non-@code{nil} on
-systems that have case-insensitive file-names, such as Microsoft
-Windows. When completing buffer names, Emacs ignores case differences
-if @code{read-buffer-completion-ignore-case} is non-@code{nil} (the
-default value is @code{nil}).
-
-@vindex completion-styles
- You can customize the matching rules for completion alternatives
-using the variable @code{completion-styles}. Its value should be a
-list of symbols, each representing a @dfn{completion style}; valid
-style symbols are @code{basic}, @code{partial-completion},
-@code{emacs22}, @code{emacs21}, and @code{initials}. When completing,
-Emacs attempts to use the first completion style in the list; if this
-does not return any completion alternatives, it tries the next
-completion style in the list, and so on. The completion rules
-described in @ref{Completion Commands} correspond to the default value
-of @code{completion-styles}, which is @code{(basic partial-completion
-emacs22)}.
-
@cindex Icomplete mode
@findex icomplete-mode
Icomplete mode presents a constantly-updated display that tells you