1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3 @c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
5 @node Minibuffer, M-x, Basic, Top
6 @chapter The Minibuffer
9 The @dfn{minibuffer} is where Emacs commands read complicated
10 arguments, such as file names, buffer names, Emacs command names, or
11 Lisp expressions. We call it the ``minibuffer'' because it's a
12 special-purpose buffer with a small amount of screen space. You can
13 use the usual Emacs editing commands in the minibuffer to edit the
17 When the minibuffer is in use, it appears in the echo area, with a
18 cursor. The minibuffer display starts with a @dfn{prompt} in a
19 distinct color, usually ending with a colon. The prompt states what
20 kind of input is expected, and how it will be used.
22 The simplest way to enter a minibuffer argument is to type the text,
23 then @key{RET} to submit the argument and exit the minibuffer. You
24 can cancel the minibuffer, and the command that wants the argument, by
27 @cindex default argument
28 Sometimes, a @dfn{default argument} appears in the prompt, inside
29 parentheses before the colon. The default will be used as the
30 argument value if you just type @key{RET}. For example, commands that
31 read buffer names usually show a buffer name as the default; you can
32 type @key{RET} to operate on that default buffer.
34 Since the minibuffer appears in the echo area, it can conflict with
35 other uses of the echo area. If an error occurs while the minibuffer
36 is active, the error message hides the minibuffer for a few seconds,
37 or until you type something; then the minibuffer comes back. If a
38 command such as @kbd{C-x =} needs to display a message in the echo
39 area, the message hides the minibuffer for a few seconds, or until you
40 type something; then the minibuffer comes back. While the minibuffer
41 is in use, keystrokes do not echo.
44 * Minibuffer File:: Entering file names with the minibuffer.
45 * Minibuffer Edit:: How to edit in the minibuffer.
46 * Completion:: An abbreviation facility for minibuffer input.
47 * Minibuffer History:: Reusing recent minibuffer arguments.
48 * Repetition:: Re-executing commands that used the minibuffer.
49 * Passwords:: Entering passwords in the echo area.
53 @section Minibuffers for File Names
55 Commands such as @kbd{C-x C-f} (@code{find-file}) use the minibuffer
56 to read a file name argument (@pxref{Basic Files}). When the
57 minibuffer is used to read a file name, it typically starts out with
58 some initial text ending in a slash. This is the @dfn{default
59 directory}. For example, it may start out like this:
62 Find File: /u2/emacs/src/
66 Here, @samp{Find File:@: } is the prompt and @samp{/u2/emacs/src/} is
67 the default directory. If you now type @kbd{buffer.c} as input, that
68 specifies the file @file{/u2/emacs/src/buffer.c}. @xref{File Names},
69 for information about the default directory.
71 You can specify the parent directory by adding @file{..}: for
72 example, @file{/u2/emacs/src/../lisp/simple.el} is equivalent to
73 @file{/u2/emacs/lisp/simple.el}. Alternatively, you can use
74 @kbd{M-@key{DEL}} to kill directory names backwards (@pxref{Words}).
76 To specify a file in a completely different directory, you can kill
77 the entire default with @kbd{C-a C-k} (@pxref{Minibuffer Edit}).
78 Alternatively, you can ignore the default, and enter an absolute file
79 name starting with a slash or a tilde after the default directory.
80 For example, you can specify @file{/etc/termcap} as follows:
83 Find File: /u2/emacs/src//etc/termcap
87 @cindex // in file name
88 @cindex double slash in file name
89 @cindex slashes repeated in file name
90 @findex file-name-shadow-mode
91 Emacs interprets a double slash as ``ignore everything before the
92 second slash in the pair.'' In the example above,
93 @file{/u2/emacs/src/} is ignored, so the argument you supplied is
94 @file{/etc/termcap}. The ignored part of the file name is dimmed if
95 the terminal allows it (to disable this dimming, turn off File Name
96 Shadow mode with the command @kbd{M-x file-name-shadow-mode}.)
98 @cindex home directory shorthand
99 Emacs interprets @file{~/} as your home directory. Thus,
100 @file{~/foo/bar.txt} specifies a file named @file{bar.txt}, inside a
101 directory named @file{foo}, which is in turn located in your home
102 directory. In addition, @file{~@var{user-id}/} means the home
103 directory of a user whose login name is @var{user-id}. Any leading
104 directory name in front of the @file{~} is ignored: thus,
105 @file{/u2/emacs/~/foo/bar.txt} is equivalent to @file{~/foo/bar.txt}.
107 On MS-Windows and MS-DOS systems, where a user doesn't always have a
108 home directory, Emacs uses several alternatives. For MS-Windows, see
109 @ref{Windows HOME}; for MS-DOS, see
111 @ref{MS-DOS File Names, HOME on MS-DOS}.
114 @ref{MS-DOS File Names, HOME on MS-DOS,, emacs, the Emacs Manual}, in
115 the main Emacs manual.
117 On these systems, the @file{~@var{user-id}/} construct is supported
118 only for the current user, i.e., only if @var{user-id} is the current
121 @vindex insert-default-directory
122 To prevent Emacs from inserting the default directory when reading
123 file names, change the variable @code{insert-default-directory} to
124 @code{nil}. In that case, the minibuffer starts out empty.
125 Nonetheless, relative file name arguments are still interpreted based
126 on the same default directory.
128 @node Minibuffer Edit
129 @section Editing in the Minibuffer
131 The minibuffer is an Emacs buffer, albeit a peculiar one, and the
132 usual Emacs commands are available for editing the argument text.
133 (The prompt, however, is @dfn{read-only}, and cannot be changed.)
135 Since @key{RET} in the minibuffer is defined to exit the minibuffer,
136 you can't use it to insert a newline in the minibuffer. To do that,
137 type @kbd{C-o} or @kbd{C-q C-j}. (The newline character is really the
138 @acronym{ASCII} character control-J.)
140 Inside a minibuffer, the keys @kbd{@key{TAB}}, @kbd{@key{SPC}}, and
141 @kbd{@key{?}} are often bound to commands that perform
142 @dfn{completion}. @xref{Completion}. You can use @kbd{C-q}
143 (@code{quoted-insert}) to insert a @key{TAB}, @key{SPC}, or @key{?}
144 character. For example, @kbd{C-q @key{TAB}} inserts a @key{TAB}
145 character. @xref{Inserting Text}.
147 For convenience, @kbd{C-a} (@code{move-beginning-of-line}) in a
148 minibuffer moves point to the beginning of the argument text, not the
149 beginning of the prompt. For example, this allows you to erase the
150 entire argument with @kbd{C-a C-k}.
152 @cindex height of minibuffer
153 @cindex size of minibuffer
154 @cindex growing minibuffer
155 @cindex resizing minibuffer
156 When the minibuffer is active, the echo area is treated much like an
157 ordinary Emacs window. For instance, you can switch to another window
158 (with @kbd{C-x o}), edit text there, then return to the minibuffer
159 window to finish the argument. You can even kill text in another
160 window, return to the minibuffer window, and yank the text into the
161 argument. There are some restrictions on the minibuffer window,
162 however: for instance, you cannot split it. @xref{Windows}.
164 @vindex resize-mini-windows
165 Normally, the minibuffer window occupies a single screen line.
166 However, if you add two or more lines' worth of text into the
167 minibuffer, it expands automatically to accomodate the text. The
168 variable @code{resize-mini-windows} controls the resizing of the
169 minibuffer. The default value is @code{grow-only}, which means the
170 behavior we have just described. If the value is @code{t}, the
171 minibuffer window will also shrink automatically if you remove some
172 lines of text from the minibuffer, down to a minimum of one screen
173 line. If the value is @code{nil}, the minibuffer window never changes
174 size automatically, but you can use the usual window-resizing commands
175 on it (@pxref{Windows}).
177 @vindex max-mini-window-height
178 The variable @code{max-mini-window-height} controls the maximum
179 height for resizing the minibuffer window. A floating-point number
180 specifies a fraction of the frame's height; an integer specifies the
181 maximum number of lines; @code{nil} means do not resize the minibuffer
182 window automatically. The default value is 0.25.
184 The @kbd{C-M-v} command in the minibuffer scrolls the help text from
185 commands that display help text of any sort in another window. You
186 can also scroll the help text with @kbd{M-@key{prior}} and
187 @kbd{M-@key{next}} (or, equivalently, @kbd{M-@key{PageUp}} and
188 @kbd{M-@key{PageDown}}). This is especially useful with long lists of
189 possible completions. @xref{Other Window}.
191 @vindex enable-recursive-minibuffers
192 Emacs normally disallows most commands that use the minibuffer while
193 the minibuffer is active. To allow such commands in the minibuffer,
194 set the variable @code{enable-recursive-minibuffers} to @code{t}.
198 @c This node is referenced in the tutorial. When renaming or deleting
199 @c it, the tutorial needs to be adjusted.
202 Sometimes, you can use a feature called @dfn{completion} to help you
203 enter arguments. This means that after you type part of the argument,
204 Emacs can fill in the rest, or some of it, based on what you have
207 When completion is available, certain keys (usually @key{TAB},
208 @key{RET}, and @key{SPC}) are rebound to complete the text in the
209 minibuffer into a longer string chosen from a set of @dfn{completion
210 alternatives}. The set of completion alternatives depends on the
211 command that requested the argument, and on what you have typed so
212 far. In addition, you can usually type @kbd{?} to display a list of
213 possible completions.
215 For example, @kbd{M-x} uses the minibuffer to read the name of a
216 command, so completion works by matching the minibuffer text against
217 the names of existing Emacs commands. So, to run the command
218 @code{insert-buffer}, you can type @kbd{M-x ins @key{SPC} b @key{RET}}
219 instead of the full @kbd{M-x insert-buffer @key{RET}}.
221 Case is significant in completion when it is significant in the
222 argument you are entering, such as command names. Thus,
223 @samp{insert-buffer} is not a valid completion for @samp{IN}.
224 Completion ignores case distinctions for certain arguments in which
225 case does not matter.
228 * Example: Completion Example. Examples of using completion.
229 * Commands: Completion Commands. A list of completion commands.
230 * Strict Completion:: Different types of completion.
231 * Options: Completion Options. Options for completion.
234 @node Completion Example
235 @subsection Completion Example
237 @kindex TAB @r{(completion)}
238 A concrete example may help here. If you type @kbd{M-x a u
239 @key{TAB}}, the @key{TAB} looks for alternatives (in this case,
240 command names) that start with @samp{au}. There are several,
241 including @code{auto-fill-mode} and @code{autoconf-mode}, but they all
242 begin with @code{auto}, so the @samp{au} in the minibuffer completes
245 If you type @key{TAB} again immediately, it cannot determine the
246 next character; it could be @samp{-}, @samp{a}, or @samp{c}. So it
247 does not add any characters; instead, @key{TAB} displays a list of all
248 possible completions in another window.
250 Next, type @kbd{- f}. The minibuffer now contains @samp{auto-f},
251 and the only command name that starts with this is
252 @code{auto-fill-mode}. If you now type @key{TAB}, completion fills in
253 the rest of the argument @samp{auto-fill-mode} into the minibuffer.
254 You have been able to enter @samp{auto-fill-mode} by typing just
255 @kbd{a u @key{TAB} - f @key{TAB}}.
257 @node Completion Commands
258 @subsection Completion Commands
260 Here is a list of the completion commands defined in the minibuffer
261 when completion is allowed.
265 @findex minibuffer-complete
266 Complete the text in the minibuffer as much as possible; if unable to
267 complete, display a list of possible completions
268 (@code{minibuffer-complete}).
270 Complete up to one word from the minibuffer text before point
271 (@code{minibuffer-complete-word}). @key{SPC} for completion is not
272 available when entering a file name, since file names often include
275 Submit the text in the minibuffer as the argument, possibly completing
276 first as described in the next
278 subsection (@code{minibuffer-complete-and-exit}).
281 node (@code{minibuffer-complete-and-exit}). @xref{Strict Completion}.
284 Display a list of possible completions of the text before point
285 (@code{minibuffer-completion-help}).
289 @findex minibuffer-complete
290 @key{TAB} (@code{minibuffer-complete}) is the most fundamental
291 completion command. It searches for all possible completion
292 alternatives that match the existing minibuffer text, and attempts to
293 complete as much as it can. The matching of completion alternatives
294 to the minibuffer text is performed according to somewhat intricate
295 rules, which are designed so that plausible completions are offered
296 under most circumstances. A valid completion alternative must satisfy
297 the following criteria:
301 The minibuffer text before point must be the same as the beginning of
302 the completion alternative. If there is any minibuffer text after
303 point, it must be a substring of the remainder of the completion
307 If no completion alternative satisfies the above rules, try using
308 @dfn{partial completion} rules: divide the minibuffer text into words
309 separated by hyphens or spaces, and complete each word separately.
310 Thus, when completing command names, @samp{em-l-m} completes to
311 @samp{emacs-lisp-mode}.
314 If there is still no completion alternative, try the first rule again,
315 but ignore the minibuffer text after point (i.e., don't try matching
320 When performing these comparisons, a @samp{*} in the minibuffer text
321 acts as a @dfn{wildcard}---it matches any character at the
322 corresponding position in the completion alternative.
325 @findex minibuffer-complete-word
326 @key{SPC} (@code{minibuffer-complete-word}) completes like
327 @key{TAB}, but only up to the next hyphen or space. If you have
328 @samp{auto-f} in the minibuffer and type @key{SPC}, it finds that the
329 completion is @samp{auto-fill-mode}, but it only inserts @samp{ill-},
330 giving @samp{auto-fill-}. Another @key{SPC} at this point completes
331 all the way to @samp{auto-fill-mode}.
333 If @key{TAB} or @key{SPC} is unable to complete, it displays a list
334 of possible completions (if there are any) in a separate window. You
335 can choose a completion from this list using the following commands:
338 @findex mouse-choose-completion
341 Clicking mouse button 1 or 2 on a completion possibility chooses that
342 completion (@code{mouse-choose-completion}).
344 @findex switch-to-completions
348 Typing @kbd{M-v}, while in the minibuffer, selects the window showing
349 the completion list buffer (@code{switch-to-completions}). This paves
350 the way for using the commands below. Typing @key{PageUp} or
351 @key{prior} does the same, as does selecting that window in other
354 @findex choose-completion
356 Typing @key{RET}, while in the completion list buffer, chooses the
357 completion that point is in or next to (@code{choose-completion}). To
358 use this command, you must first switch to the completion list window.
360 @findex next-completion
362 Typing the right-arrow key @key{Right}, while in the completion list
363 buffer, moves point to the following completion possibility
364 (@code{next-completion}).
366 @findex previous-completion
368 Typing the left-arrow key @key{Left}, while in the completion list
369 buffer, moves point to the previous completion possibility
370 (@code{previous-completion}).
373 @node Strict Completion
374 @subsection Strict Completion
376 There are three different ways that @key{RET} can do completion,
377 depending on how the argument will be used.
381 @dfn{Strict} completion accepts only known completion candidates. For
382 example, when @kbd{C-x k} reads the name of a buffer to kill, only the
383 name of an existing buffer makes sense. In strict completion,
384 @key{RET} refuses to exit if the text in the minibuffer does not
385 complete to an exact match.
388 @dfn{Cautious} completion is similar to strict completion, except that
389 @key{RET} exits only if the text is an already exact match.
390 Otherwise, @key{RET} does not exit, but it does complete the text. If
391 that completes to an exact match, a second @key{RET} will exit.
393 Cautious completion is used for reading file names for files that must
394 already exist, for example.
397 @dfn{Permissive} completion allows any input; the completion
398 candidates are just suggestions. For example, when @kbd{C-x C-f}
399 reads the name of a file to visit, any file name is allowed, including
400 nonexistent file (in case you want to create a file). In permissive
401 completion, @key{RET} does not complete, it just submits the argument
402 as you have entered it.
405 The completion commands display a list of all possible completions
406 whenever they can't determine even one more character by completion.
407 Also, typing @kbd{?} explicitly requests such a list. You can scroll
408 the list with @kbd{C-M-v} (@pxref{Other Window}).
410 @node Completion Options
411 @subsection Completion Options
413 @vindex completion-auto-help
414 If @code{completion-auto-help} is set to @code{nil}, the completion
415 commands never display the completion list buffer; you must type
416 @kbd{?} to display the list. If the value is @code{lazy}, Emacs only
417 shows the completion list buffer on the second attempt to complete.
418 In other words, if there is nothing to complete, the first @key{TAB}
419 echoes @samp{Next char not unique}; the second @key{TAB} does the
420 completion list buffer.
422 @vindex completion-ignored-extensions
423 @cindex ignored file names, in completion
424 When completing file names, certain file names are usually ignored.
425 The variable @code{completion-ignored-extensions} contains a list of
426 strings; a file name ending in any of those strings is ignored as a
427 completion candidate. The standard value of this variable has several
428 elements including @code{".o"}, @code{".elc"}, and @code{"~"}. For
429 example, if a directory contains @samp{foo.c} and @samp{foo.elc},
430 @samp{foo} completes to @samp{foo.c}. However, if @emph{all} possible
431 completions end in ``ignored'' strings, they are not ignored: in the
432 previous example, @samp{foo.e} completes to @samp{foo.elc}.
433 Displaying a list of possible completions disregards
434 @code{completion-ignored-extensions}; it shows them all.
436 If an element of @code{completion-ignored-extensions} ends in a
437 slash (@file{/}), it's a subdirectory name; that directory and its
438 contents are ignored. Elements of
439 @code{completion-ignored-extensions} that do not end in a slash are
442 @cindex case-sensitivity and completion
443 @vindex read-file-name-completion-ignore-case
444 @vindex read-buffer-completion-ignore-case
445 When completing file names, Emacs ignores case differences if the
446 variable @code{read-file-name-completion-ignore-case} is
447 non-@code{nil}. The default value is @code{nil} on systems that have
448 case-sensitive file-names, such as GNU/Linux; it is non-@code{nil} on
449 systems that have case-insensitive file-names, such as Microsoft
450 Windows. When completing buffer names, Emacs ignores case differences
451 if @code{read-buffer-completion-ignore-case} is non-@code{nil} (the
452 default value is @code{nil}).
454 @vindex completion-styles
455 You can customize the matching rules for completion alternatives
456 using the variable @code{completion-styles}. Its value should be a
457 list of symbols, each representing a @dfn{completion style}; valid
458 style symbols are @code{basic}, @code{partial-completion},
459 @code{emacs22}, and @code{emacs21}. When completing, Emacs attempts
460 to use the first completion style in the list; if this does not return
461 any completion alternatives, it tries the next completion style in the
462 list, and so on. The completion rules described in @ref{Completion
463 Commands} correspond to the default value of @code{completion-styles},
464 which is @code{(basic partial-completion emacs22)}.
466 @cindex Icomplete mode
467 @findex icomplete-mode
468 Icomplete mode presents a constantly-updated display that tells you
469 what completions are available for the text you've entered so far. The
470 command to enable or disable this minor mode is @kbd{M-x
473 @node Minibuffer History
474 @section Minibuffer History
475 @cindex minibuffer history
476 @cindex history of minibuffer input
478 Every argument that you enter with the minibuffer is saved in a
479 @dfn{minibuffer history list} so you can easily use it again later.
480 You can use the following arguments to quickly fetch an earlier
481 argument into the minibuffer:
486 Move to the previous item in the minibuffer history, an earlier
487 argument (@code{previous-history-element}).
490 Move to the next item in the minibuffer history
491 (@code{next-history-element}).
492 @item M-r @var{regexp} @key{RET}
493 Move to an earlier item in the minibuffer history that
494 matches @var{regexp} (@code{previous-matching-history-element}).
495 @item M-s @var{regexp} @key{RET}
496 Move to a later item in the minibuffer history that matches
497 @var{regexp} (@code{next-matching-history-element}).
500 @kindex M-p @r{(minibuffer history)}
501 @kindex M-n @r{(minibuffer history)}
502 @findex next-history-element
503 @findex previous-history-element
504 While in the minibuffer, typing @kbd{M-p} or @key{Up}
505 (@code{previous-history-element}) moves up through the minibuffer
506 history list, one item at a time. Each @kbd{M-p} fetches an earlier
507 item from the history list into the minibuffer, replacing its existing
508 contents. Similarly, typing @kbd{M-n} or @key{Down}
509 (@code{next-history-element}) moves back down the history list,
510 fetching later entries into the minibuffer. You can think of these
511 commands as ``backwards'' and ``forwards'' through the history list.
513 If you type @kbd{M-n} in the minibuffer when there are no later
514 entries in the minibuffer history (e.g., if you haven't previously
515 typed @kbd{M-p}), Emacs tries fetching from a list of default
516 argument: values that you are likely to enter. You can think of this
517 as moving through the ``future list'' instead of the ``history list''.
519 The input that @kbd{M-p} or @kbd{M-n} fetches into the minibuffer
520 entirely replaces the existing contents of the minibuffer, so you can
521 simply type @key{RET} to use it as an argument. You can also edit the
522 text before you reuse it; this does not change the history element
523 that you ``moved'' to, but your new argument does go at the end of the
524 history list in its own right.
526 @findex previous-matching-history-element
527 @findex next-matching-history-element
528 @kindex M-r @r{(minibuffer history)}
529 @kindex M-s @r{(minibuffer history)}
530 There are also commands to search forward or backward through the
531 history; they search for history elements that match a regular
532 expression. @kbd{M-r} (@code{previous-matching-history-element})
533 searches older elements in the history, while @kbd{M-s}
534 (@code{next-matching-history-element}) searches newer elements. These
535 commands are unusual: they use the minibuffer to read the regular
536 expression even though they are invoked from the minibuffer. As with
537 incremental searching, an upper-case letter in the regular expression
538 makes the search case-sensitive (@pxref{Search Case}). You can also
539 search through the history using an incremental search (@pxref{Isearch
542 All uses of the minibuffer record your input on a history list, but
543 there are separate history lists for different kinds of arguments.
544 For example, there is a list for file names, used by all the commands
545 that read file names. (As a special feature, this history list
546 records the absolute file name, even if the name you entered was not
549 There are several other specific history lists, including one for
550 buffer names, one for arguments of commands like @code{query-replace},
551 one used by @kbd{M-x} for command names, and one used by
552 @code{compile} for compilation commands. Finally, there is one
553 ``miscellaneous'' history list that most minibuffer arguments use.
555 @vindex history-length
556 The variable @code{history-length} specifies the maximum length of a
557 minibuffer history list; adding a new element deletes the oldest
558 element if the list gets too long. If the value of
559 @code{history-length} is @code{t}, there is no maximum length.
561 @vindex history-delete-duplicates
562 The variable @code{history-delete-duplicates} specifies whether to
563 delete duplicates in history. If it is non-@code{nil}, adding a new
564 element deletes from the list all other elements that are equal to it.
565 The default is @code{nil}.
568 @section Repeating Minibuffer Commands
569 @cindex command history
570 @cindex history of commands
572 Every command that uses the minibuffer once is recorded on a special
573 history list, the @dfn{command history}, together with the values of
574 its arguments, so that you can repeat the entire command. In
575 particular, every use of @kbd{M-x} is recorded there, since @kbd{M-x}
576 uses the minibuffer to read the command name.
578 @findex list-command-history
580 @item C-x @key{ESC} @key{ESC}
581 Re-execute a recent minibuffer command from the command history
582 (@code{repeat-complex-command}).
583 @item M-x list-command-history
584 Display the entire command history, showing all the commands
585 @kbd{C-x @key{ESC} @key{ESC}} can repeat, most recent first.
589 @findex repeat-complex-command
590 @kbd{C-x @key{ESC} @key{ESC}} is used to re-execute a recent command
591 that used the minibuffer. With no argument, it repeats the last such
592 command. A numeric argument specifies which command to repeat; 1
593 means the last one, 2 the previous, and so on.
595 @kbd{C-x @key{ESC} @key{ESC}} works by turning the previous command
596 into a Lisp expression and then entering a minibuffer initialized with
597 the text for that expression. Even if you don't understand Lisp
598 syntax, it will probably be obvious which command is displayed for
599 repetition. If you type just @key{RET}, that repeats the command
600 unchanged. You can also change the command by editing the Lisp
601 expression before you execute it. The repeated command is added to
602 the front of the command history unless it is identical to the most
605 Once inside the minibuffer for @kbd{C-x @key{ESC} @key{ESC}}, you can
606 use the minibuffer history commands (@kbd{M-p}, @kbd{M-n}, @kbd{M-r},
607 @kbd{M-s}; @pxref{Minibuffer History}) to move through the history list
608 of saved entire commands. After finding the desired previous command,
609 you can edit its expression as usual and then repeat it by typing
612 @vindex isearch-resume-in-command-history
613 Incremental search does not, strictly speaking, use the minibuffer.
614 Therefore, although it behaves like a complex command, it normally
615 does not appear in the history list for @kbd{C-x @key{ESC} @key{ESC}}.
616 You can make incremental search commands appear in the history by
617 setting @code{isearch-resume-in-command-history} to a non-@code{nil}
618 value. @xref{Incremental Search}.
620 @vindex command-history
621 The list of previous minibuffer-using commands is stored as a Lisp
622 list in the variable @code{command-history}. Each element is a Lisp
623 expression which describes one command and its arguments. Lisp programs
624 can re-execute a command by calling @code{eval} with the
625 @code{command-history} element.
628 @section Entering passwords
630 Sometimes, you may need to enter a password into Emacs. For instance,
631 when you tell Emacs to visit a file on another machine via a network
632 protocol such as FTP, you often need to supply a password to gain
633 access to the machine (@pxref{Remote Files}).
635 Entering a password is, in a basic sense, similar to using a
636 minibuffer. Emacs displays a prompt in the echo area (such as
637 @samp{Password: }); after you type the required password, press
638 @key{RET} to submit it. To prevent others from seeing your password,
639 every character you type is displayed as a dot (@samp{.}) instead of
642 Most of the features and commands associated with the minibuffer can
643 @emph{not} be used when entering a password. There is no history or
644 completion, and you cannot change windows or perform any other action
645 with Emacs until you have submitted the password.
647 While you are typing the password, you may press @key{DEL} to delete
648 backwards, removing the last character entered. @key{C-u} deletes
649 everything you have typed so far. @kbd{C-g} quits the password prompt
650 (@pxref{Quitting}). @kbd{C-y} inserts the current kill into the
651 password (@pxref{Killing}). You may type either @key{RET} or
652 @key{ESC} to submit the password. Any other self-inserting character
653 key inserts the associated character into the password, and all other
657 arch-tag: ba913cfd-b70e-400f-b663-22b2c309227f