9.2 Editing in the Minibuffer
The minibuffer is an Emacs buffer (albeit a peculiar one), and the usual
Emacs commands are available for editing the text of an argument you are
entering.
Since <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 C-o or C-q C-j. (On text terminals, newline is
really the ASCII character control-J.)
The minibuffer has its own window which always has space on the screen
but acts as if it were not there when the minibuffer is not in use. When
the minibuffer is in use, its window is just like the others; you can
switch to another window with C-x o, edit text in other windows and
perhaps even visit more files, before returning to the minibuffer to submit
the argument. You can kill text in another window, return to the
minibuffer window, and then yank the text to use it in the argument.
See Windows.
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 C-x ^.
The minibuffer window expands vertically as necessary to hold the
text that you put in the minibuffer. If resize-mini-windows
is
t
(the default), the window is always resized to fit the size
of the text it displays. If its value is the symbol 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. If its value is nil
, you have to adjust the height
yourself.
The variable 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; 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 C-M-v
command while in the minibuffer to scroll the help text.
(M-<PAGEUP> and M-<PAGEDOWN> also operate on that
help text.) This lasts until you exit the minibuffer. This feature
is especially useful when you display a buffer listing possible
completions. See Other Window.
Emacs normally disallows most commands that use the minibuffer while
the minibuffer is active. This rule is to prevent recursive minibuffers
from confusing novice users. If you want to be able to use such
commands in the minibuffer, set the variable
enable-recursive-minibuffers
to a non-nil
value.