@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 00, 2001
+@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Minibuffer, M-x, Basic, Top
@chapter The Minibuffer
@cindex default argument
Sometimes a @dfn{default argument} appears in parentheses after the
colon; it too is part of the prompt. The default will be used as the
-argument value if you enter an empty argument (for example, just type
+argument value if you enter an empty argument (that is, just type
@key{RET}). For example, commands that read buffer names always show a
default, which is the name of the buffer that will be used if you type
just @key{RET}.
@cindex size of minibuffer
@cindex growing minibuffer
@cindex resizing minibuffer
-@vindex max-mini-window-height
There are some restrictions on the use of the minibuffer window,
however. You cannot switch buffers in it---the minibuffer and its
window are permanently attached. Also, you cannot split or kill the
minibuffer window. But you can make it taller in the normal fashion
-with @kbd{C-x ^}. The minibuffer window expands vertically as necessary
-to hold the text that you put in the minibuffer. Customize the variable
-@code{max-mini-window-height} to control the maximum height for resizing
-the minibuffer window.
-
-@vindex minibuffer-scroll-overlap
- Scrolling works specially in the minibuffer window. When the
-minibuffer is just one line high, and it contains a long line of text
-that won't fit on the screen, scrolling automatically maintains an
-overlap of a certain number of characters from one continuation line to
-the next. The variable @code{minibuffer-scroll-overlap} specifies how
-many characters of overlap; the default is 20.
+with @kbd{C-x ^}.
+
+@vindex resize-mini-windows
+ The minibuffer window expands vertically as necessary to hold the
+text that you put in the minibuffer, if @code{resize-mini-windows} is
+non-@code{nil}. If @code{resize-mini-windows} is @code{t}, the window
+is always resized to fit the size of the text it displays. If
+@code{resize-mini-windows} is the symbol @code{grow-only}, the window
+grows when the size of displayed text increases, but shrinks (back to
+the normal size) only when the minibuffer becomes inactive.
+
+@vindex max-mini-window-height
+ The variable @code{max-mini-window-height} controls the maximum
+height for resizing the minibuffer window: a floating-point number
+specifies a fraction of the frame's height; an integer specifies the
+maximum number of lines; @code{nil} means do not resize the minibuffer
+window automatically. The default value is 0.25.
If while in the minibuffer you issue a command that displays help text
of any sort in another window, you can use the @kbd{C-M-v} command while
in the minibuffer to scroll the help text. This lasts until you exit
-the minibuffer. This feature is especially useful if a completing
-minibuffer gives you a list of possible completions. @xref{Other Window}.
+the minibuffer. This feature is especially useful when you display
+a buffer listing possible completions. @xref{Other Window}.
@vindex enable-recursive-minibuffers
Emacs normally disallows most commands that use the minibuffer while
type @key{SPC}, it finds that the completion is @samp{auto-fill-mode},
but it stops completing after @samp{fill-}. This gives
@samp{auto-fill-}. Another @key{SPC} at this point completes all the
-way to @samp{auto-fill-mode}. @key{SPC} in the minibuffer when
-completion is available runs the command
-@code{minibuffer-complete-word}.
+way to @samp{auto-fill-mode}. The command that implements this
+behavior is called @code{minibuffer-complete-word}.
Here are some commands you can use to choose a completion from a
window that displays a list of completions:
@item Mouse-2
Clicking mouse button 2 on a completion in the list of possible
completions chooses that completion (@code{mouse-choose-completion}).
-You normally use this command while point is in the minibuffer; but you
+You normally use this command while point is in the minibuffer, but you
must click in the list of completions, not in the minibuffer itself.
@findex switch-to-completions
@subsection Completion Options
@vindex completion-ignored-extensions
+@cindex ignored file names, in completion
When completion is done on file names, certain file names are usually
ignored. The variable @code{completion-ignored-extensions} contains a
list of strings; a file whose name ends in any of those strings is
lists of completions---those always mention all possible completions.
@vindex completion-auto-help
- Normally, a completion command that finds the next character is undetermined
-automatically displays a list of all possible completions. If the variable
-@code{completion-auto-help} is set to @code{nil}, this does not happen,
-and you must type @kbd{?} to display the possible completions.
-
-@pindex complete
- The @code{complete} library implements a more powerful kind of
-completion that can complete multiple words at a time. For example, it
-can complete the command name abbreviation @code{p-b} into
+ Normally, a completion command that cannot determine even one
+additional character automatically displays a list of all possible
+completions. If the variable @code{completion-auto-help} is set to
+@code{nil}, this automatic display is disabled, so you must type
+@kbd{?} to display the list of completions.
+
+@cindex Partial Completion mode
+@vindex partial-completion-mode
+@findex partial-completion-mode
+ Partial Completion mode implements a more powerful kind of
+completion that can complete multiple words in parallel. For example,
+it can complete the command name abbreviation @code{p-b} into
@code{print-buffer}, because no other command starts with two words
-whose initials are @samp{p} and @samp{b}. To use this library, put
-@code{(load "complete")} in your @file{~/.emacs} file (@pxref{Init
-File}).
+whose initials are @samp{p} and @samp{b}.
+
+ Partial completion of directories in file names uses @samp{*} to
+indicate the places for completion; thus, @file{/u*/b*/f*} might
+complete to @file{/usr/bin/foo}.
+
+ To enable this mode, use the command @kbd{M-x
+partial-completion-mode}, or customize the option
+@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}},
+@kbd{M-@key{SPC}}, @kbd{M-@key{RET}} and @kbd{M-?}.
+
+@vindex PC-include-file-path
+@vindex PC-disable-includes
+ Another feature of Partial Completion mode is to extend
+@code{find-file} so that the @samp{<@var{include}>} stands for the
+file named @var{include} in some directory in the path
+@code{PC-include-file-path}. If you set @code{PC-disable-includes} to
+non-@code{nil}, this feature is disabled.
@cindex Icomplete mode
+@findex icomplete-mode
Icomplete mode presents a constantly-updated display that tells you
what completions are available for the text you've entered so far. The
command to enable or disable this minor mode is @kbd{M-x
searches newer elements. By special dispensation, these commands can
use the minibuffer to read their arguments even though you are already
in the minibuffer when you issue them. As with incremental searching,
-an uppercase letter in the regular expression makes the search
+an upper-case letter in the regular expression makes the search
case-sensitive (@pxref{Search Case}).
@ignore