you which directory the file will be found in if you do not specify a
directory.
-@c Separate paragraph to clean up ugly pagebreak--rms
+@c Separate paragraph to clean up ugly page break--rms
@need 1500
For example, the minibuffer might start out with these contents:
@end example
@noindent
-where @samp{Find File:@: } is the prompt. Typing @kbd{buffer.c}
-specifies the file @file{/u2/emacs/src/buffer.c}. To find files in
-nearby directories, use @kbd{..}; thus, if you type
+where @samp{Find File:@: } is the prompt. Typing @kbd{buffer.c} as
+input specifies the file @file{/u2/emacs/src/buffer.c}. To find files
+in nearby directories, use @kbd{..}; thus, if you type
@kbd{../lisp/simple.el}, you will get the file named
@file{/u2/emacs/lisp/simple.el}. Alternatively, you can kill with
@kbd{M-@key{DEL}} the directory names you don't want (@pxref{Words}).
can be determined from the part you have typed.
When completion is available, certain keys---@key{TAB}, @key{RET}, and
-@key{SPC}---are rebound to complete the text present in the minibuffer
+@key{SPC}---are rebound to complete the text in the minibuffer before point
into a longer string that it stands for, by matching it against a set of
@dfn{completion alternatives} provided by the command reading the
argument. @kbd{?} is defined to display a list of possible completions
For example, when @kbd{M-x} uses the minibuffer to read the name of a
command, it provides a list of all available Emacs command names to
-complete against. The completion keys match the text in the minibuffer
+complete against. The completion keys match the minibuffer text
against all the command names, find any additional name characters
implied by the ones already present in the minibuffer, and add those
characters to the ones you have given. This is what makes it possible
case does not matter.
@menu
-* Example: Completion Example.
-* Commands: Completion Commands.
-* Strict Completion::
-* Options: Completion Options.
+* Example: Completion Example. Examples of using completion.
+* Commands: Completion Commands. A list of completion commands.
+* Strict Completion:: Different types of completion.
+* Options: Completion Options. Options for completion.
@end menu
@node Completion Example
@table @kbd
@item @key{TAB}
-Complete the text in the minibuffer as much as possible
+Complete the text before point in the minibuffer as much as possible
(@code{minibuffer-complete}).
@item @key{SPC}
-Complete the minibuffer text, but don't go beyond one word
+Complete the minibuffer text before point, but don't go beyond one word
(@code{minibuffer-complete-word}).
@item @key{RET}
Submit the text in the minibuffer as the argument, possibly completing
strings, then they are not ignored. Ignored extensions do not apply to
lists of completions---those always mention all possible completions.
+ If an element of the list in @code{completion-ignored-extensions} ends
+in a slash @file{/}, it indicates a subdirectory that should be ignored
+when completing file names. (Elements of
+@code{completion-ignored-extensions} which do not end in a slash are
+never considered when a completion candidate is a directory; thus,
+completion returns directories whose names end in @file{.elc} even
+though there's an element @code{".elc"} in the list.)
+
@vindex completion-auto-help
Normally, a completion command that cannot determine even one
additional character automatically displays a list of all possible
complete to @file{/usr/bin/foo}.
To enable this mode, use the command @kbd{M-x
-partial-completion-mode}, or customize the option
+partial-completion-mode}, or customize the variable
@code{partial-completion-mode}. This binds the partial completion
commands to @key{TAB}, @key{SPC}, @key{RET}, and @kbd{?}. The usual
completion commands are available on @kbd{M-@key{TAB}},
@code{history-length} is @code{t}, though, there is no maximum length
and elements are never deleted.
+@vindex history-delete-duplicates
+ The variable @code{history-delete-duplicates} specifies whether to
+delete duplicates in history. If the value of @code{history-delete-duplicates}
+is @code{t}, that means when adding a new history element, all
+previous identical elements are deleted.
+
@node Repetition
@section Repeating Minibuffer Commands
@cindex command history
the command name.
@findex list-command-history
-@c widecommands
@table @kbd
@item C-x @key{ESC} @key{ESC}
Re-execute a recent minibuffer command (@code{repeat-complex-command}).
you can edit its expression as usual and then resubmit it by typing
@key{RET} as usual.
+@vindex isearch-resume-in-command-history
+ Incremental search does not, strictly speaking, use the minibuffer,
+but it does something similar. Although it behaves like a complex command,
+it normally does not appear in the history list for @kbd{C-x
+@key{ESC} @key{ESC}}. You can make it appear in the history by
+setting @code{isearch-resume-in-command-history} to a non-@code{nil}
+value.
+
@vindex command-history
The list of previous minibuffer-using commands is stored as a Lisp
list in the variable @code{command-history}. Each element is a Lisp
expression which describes one command and its arguments. Lisp programs
can re-execute a command by calling @code{eval} with the
@code{command-history} element.
+
+@ignore
+ arch-tag: ba913cfd-b70e-400f-b663-22b2c309227f
+@end ignore