From: Chong Yidong Date: Sat, 8 Oct 2011 15:08:50 +0000 (-0400) Subject: Document completion styles in Emacs manual; copyedits. X-Git-Tag: emacs-pretest-24.0.91~179 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=27a16462454d7f45a0b1c65c0b0b2ed76091e11b;p=emacs.git 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. --- diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index dc331eeb612..a8238f24aee 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,20 @@ +2011-10-08 Chong Yidong + + * 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 * basic.texi (Inserting Text): Add xref to Completion. Add diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index bb675b61cff..2107b6926b9 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 2672c30363b..433bf617598 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 9ff995138f5..daa7ee4396a 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 da1e88ab331..a9b0394e9b7 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 diff --git a/etc/NEWS b/etc/NEWS index 2c48a30e5f6..41870bf53cc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -100,12 +100,12 @@ and also when HOME is set to C:\ by default. rather than their own completion code. *** `completion-at-point' now handles tags and semantic completion. - +--- *** Completion in a non-minibuffer now tries to detect the end of completion and pops down the *Completions* buffer accordingly. *** Completion can cycle, depending on completion-cycle-threshold. - ++++ *** New completion style `substring'. *** Completion style can be set per-category `completion-category-overrides'.