GNU Info

Info Node: (elisp)Intro to Minibuffers

(elisp)Intro to Minibuffers


Next: Text from Minibuffer Up: Minibuffers
Enter node , (file) or (file)node

Introduction to Minibuffers
===========================

   In most ways, a minibuffer is a normal Emacs buffer.  Most operations
_within_ a buffer, such as editing commands, work normally in a
minibuffer.  However, many operations for managing buffers do not apply
to minibuffers.  The name of a minibuffer always has the form
` *Minibuf-NUMBER', and it cannot be changed.  Minibuffers are
displayed only in special windows used only for minibuffers; these
windows always appear at the bottom of a frame.  (Sometimes frames have
no minibuffer window, and sometimes a special kind of frame contains
nothing but a minibuffer window; see Note: Minibuffers and Frames.)

   The text in the minibuffer always starts with the "prompt string",
the text that was specified by the program that is using the minibuffer
to tell the user what sort of input to type.  This text is marked
read-only so you won't accidentally delete or change it.  It is also
marked as a field (Note: Fields), so that certain motion functions,
including `beginning-of-line', `forward-word', `forward-sentence', and
`forward-paragraph', stop at the boundary between the prompt and the
actual text.  (In older Emacs versions, the prompt was displayed using
a special mechanism and was not part of the buffer contents.)

   The minibuffer's window is normally a single line; it grows
automatically if necessary if the contents require more space.  You can
explicitly resize it temporarily with the window sizing commands; it
reverts to its normal size when the minibuffer is exited.  You can
resize it permanently by using the window sizing commands in the frame's
other window, when the minibuffer is not active.  If the frame contains
just a minibuffer, you can change the minibuffer's size by changing the
frame's size.

   If a command uses a minibuffer while there is an active minibuffer,
this is called a "recursive minibuffer".  The first minibuffer is named
` *Minibuf-0*'.  Recursive minibuffers are named by incrementing the
number at the end of the name.  (The names begin with a space so that
they won't show up in normal buffer lists.)  Of several recursive
minibuffers, the innermost (or most recently entered) is the active
minibuffer.  We usually call this "the" minibuffer.  You can permit or
forbid recursive minibuffers by setting the variable
`enable-recursive-minibuffers' or by putting properties of that name on
command symbols (Note: Minibuffer Misc).

   Like other buffers, a minibuffer may use any of several local keymaps
(Note: Keymaps); these contain various exit commands and in some cases
completion commands (Note: Completion).

   * `minibuffer-local-map' is for ordinary input (no completion).

   * `minibuffer-local-ns-map' is similar, except that <SPC> exits just
     like <RET>.  This is used mainly for Mocklisp compatibility.

   * `minibuffer-local-completion-map' is for permissive completion.

   * `minibuffer-local-must-match-map' is for strict completion and for
     cautious completion.

   When Emacs is running in batch mode, any request to read from the
minibuffer actually reads a line from the standard input descriptor that
was supplied when Emacs was started.


automatically generated by info2www version 1.2.2.9