Mercurial > emacs
annotate lispref/minibuf.texi @ 69478:e8bb5df2ba7a
Add index entries around each paragraph rather than depend on entries
from beginning of node. Doing so ensures that index entries are less
likely to be forgotten if text is cut and pasted, and are necessary
anyway if the references are on a separate page. It seems that
makeinfo is now (v. 4.8) only producing one index entry per node, so
there is no longer any excuse not to. Use subheading instead of
heading. The incorrect use of heading produced very large fonts in
Info--as large as the main heading.
(From Bill Wohler): MH-E never did appear in Emacs 21--MH-E versions 6
and 7 appeared *around* the time of these Emacs releases.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Wed, 15 Mar 2006 00:26:12 +0000 |
parents | 16cf29541f7b |
children | f79400cfcdca d1c5430c5bff |
rev | line source |
---|---|
6555 | 1 @c -*-texinfo-*- |
2 @c This is part of the GNU Emacs Lisp Reference Manual. | |
64889
e836425ee789
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64859
diff
changeset
|
3 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, |
68648
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
68577
diff
changeset
|
4 @c 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
6555 | 5 @c See the file elisp.texi for copying conditions. |
6 @setfilename ../info/minibuf | |
7337
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
7 @node Minibuffers, Command Loop, Read and Print, Top |
6555 | 8 @chapter Minibuffers |
9 @cindex arguments, reading | |
10 @cindex complex arguments | |
11 @cindex minibuffer | |
12 | |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
13 A @dfn{minibuffer} is a special buffer that Emacs commands use to |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
14 read arguments more complicated than the single numeric prefix |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
15 argument. These arguments include file names, buffer names, and |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
16 command names (as in @kbd{M-x}). The minibuffer is displayed on the |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
17 bottom line of the frame, in the same place as the echo area |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
18 (@pxref{The Echo Area}), but only while it is in use for reading an |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
19 argument. |
6555 | 20 |
21 @menu | |
22 * Intro to Minibuffers:: Basic information about minibuffers. | |
23 * Text from Minibuffer:: How to read a straight text string. | |
24 * Object from Minibuffer:: How to read a Lisp object or expression. | |
25 * Minibuffer History:: Recording previous minibuffer inputs | |
26 so the user can reuse them. | |
55925
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
27 * Initial Input:: Specifying initial contents for the minibuffer. |
6555 | 28 * Completion:: How to invoke and customize completion. |
29 * Yes-or-No Queries:: Asking a question with a simple answer. | |
30 * Multiple Queries:: Asking a series of similar questions. | |
23147 | 31 * Reading a Password:: Reading a password from the terminal. |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
32 * Minibuffer Commands:: Commands used as key bindings in minibuffers. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
33 * Minibuffer Contents:: How such commands access the minibuffer text. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
34 * Minibuffer Windows:: Operating on the special minibuffer windows. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
35 * Recursive Mini:: Whether recursive entry to minibuffer is allowed. |
6555 | 36 * Minibuffer Misc:: Various customization hooks and variables. |
37 @end menu | |
38 | |
39 @node Intro to Minibuffers | |
40 @section Introduction to Minibuffers | |
41 | |
42 In most ways, a minibuffer is a normal Emacs buffer. Most operations | |
43 @emph{within} a buffer, such as editing commands, work normally in a | |
44 minibuffer. However, many operations for managing buffers do not apply | |
45 to minibuffers. The name of a minibuffer always has the form @w{@samp{ | |
46915 | 46 *Minibuf-@var{number}*}}, and it cannot be changed. Minibuffers are |
6555 | 47 displayed only in special windows used only for minibuffers; these |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
48 windows always appear at the bottom of a frame. (Sometimes frames have |
6555 | 49 no minibuffer window, and sometimes a special kind of frame contains |
50 nothing but a minibuffer window; see @ref{Minibuffers and Frames}.) | |
51 | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
52 The text in the minibuffer always starts with the @dfn{prompt string}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
53 the text that was specified by the program that is using the minibuffer |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
54 to tell the user what sort of input to type. This text is marked |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
55 read-only so you won't accidentally delete or change it. It is also |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
56 marked as a field (@pxref{Fields}), so that certain motion functions, |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
57 including @code{beginning-of-line}, @code{forward-word}, |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
58 @code{forward-sentence}, and @code{forward-paragraph}, stop at the |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
59 boundary between the prompt and the actual text. (In older Emacs |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
60 versions, the prompt was displayed using a special mechanism and was not |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
61 part of the buffer contents.) |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
62 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
63 The minibuffer's window is normally a single line; it grows |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
64 automatically if necessary if the contents require more space. You can |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
65 explicitly resize it temporarily with the window sizing commands; it |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
66 reverts to its normal size when the minibuffer is exited. You can |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
67 resize it permanently by using the window sizing commands in the frame's |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
68 other window, when the minibuffer is not active. If the frame contains |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
69 just a minibuffer, you can change the minibuffer's size by changing the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
70 frame's size. |
6555 | 71 |
52485
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
72 Use of the minibuffer reads input events, and that alters the values |
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
73 of variables such as @code{this-command} and @code{last-command} |
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
74 (@pxref{Command Loop Info}). Your program should bind them around the |
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
75 code that uses the minibuffer, if you do not want that to change them. |
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
76 |
6555 | 77 If a command uses a minibuffer while there is an active minibuffer, |
78 this is called a @dfn{recursive minibuffer}. The first minibuffer is | |
79 named @w{@samp{ *Minibuf-0*}}. Recursive minibuffers are named by | |
80 incrementing the number at the end of the name. (The names begin with a | |
81 space so that they won't show up in normal buffer lists.) Of several | |
82 recursive minibuffers, the innermost (or most recently entered) is the | |
83 active minibuffer. We usually call this ``the'' minibuffer. You can | |
84 permit or forbid recursive minibuffers by setting the variable | |
85 @code{enable-recursive-minibuffers} or by putting properties of that | |
64859
4e8cce76fcf3
(Intro to Minibuffers): Update pxref for previous change in minibuf.texi.
Luc Teirlinck <teirllm@auburn.edu>
parents:
64843
diff
changeset
|
86 name on command symbols (@pxref{Recursive Mini}). |
6555 | 87 |
67414
ba853fd4880c
(Intro to Minibuffers): Fix typo.
Luc Teirlinck <teirllm@auburn.edu>
parents:
67396
diff
changeset
|
88 Like other buffers, a minibuffer uses a local keymap |
67396
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
89 (@pxref{Keymaps}) to specify special key bindings. The function that |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
90 invokes the minibuffer also sets up its local map according to the job |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
91 to be done. @xref{Text from Minibuffer}, for the non-completion |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
92 minibuffer local maps. @xref{Completion Commands}, for the minibuffer |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
93 local maps for completion. |
6555 | 94 |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
95 When Emacs is running in batch mode, any request to read from the |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
96 minibuffer actually reads a line from the standard input descriptor that |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
97 was supplied when Emacs was started. |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
98 |
6555 | 99 @node Text from Minibuffer |
100 @section Reading Text Strings with the Minibuffer | |
101 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
102 Most often, the minibuffer is used to read text as a string. It can |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
103 also be used to read a Lisp object in textual form. The most basic |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
104 primitive for minibuffer input is @code{read-from-minibuffer}; it can do |
60042
114da1fc3775
(Text from Minibuffer): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
58360
diff
changeset
|
105 either one. There are also specialized commands for reading |
114da1fc3775
(Text from Minibuffer): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
58360
diff
changeset
|
106 commands, variables, file names, etc. (@pxref{Completion}). |
6555 | 107 |
12098 | 108 In most cases, you should not call minibuffer input functions in the |
109 middle of a Lisp function. Instead, do all minibuffer input as part of | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
110 reading the arguments for a command, in the @code{interactive} |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
111 specification. @xref{Defining Commands}. |
12098 | 112 |
58360
0e8e74522f85
(Text from Minibuffer): Document KEEP-ALL arg in read-from-minibuffer.
Richard M. Stallman <rms@gnu.org>
parents:
58280
diff
changeset
|
113 @defun read-from-minibuffer prompt-string &optional initial-contents keymap read hist default inherit-input-method keep-all |
6555 | 114 This function is the most general way to get input through the |
115 minibuffer. By default, it accepts arbitrary text and returns it as a | |
116 string; however, if @var{read} is non-@code{nil}, then it uses | |
117 @code{read} to convert the text into a Lisp object (@pxref{Input | |
118 Functions}). | |
119 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
120 The first thing this function does is to activate a minibuffer and |
6555 | 121 display it with @var{prompt-string} as the prompt. This value must be a |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
122 string. Then the user can edit text in the minibuffer. |
6555 | 123 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
124 When the user types a command to exit the minibuffer, |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
125 @code{read-from-minibuffer} constructs the return value from the text in |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
126 the minibuffer. Normally it returns a string containing that text. |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
127 However, if @var{read} is non-@code{nil}, @code{read-from-minibuffer} |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
128 reads the text and returns the resulting Lisp object, unevaluated. |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
129 (@xref{Input Functions}, for information about reading.) |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
130 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
131 The argument @var{default} specifies a default value to make available |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
132 through the history commands. It should be a string, or @code{nil}. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
133 If non-@code{nil}, the user can access it using |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
134 @code{next-history-element}, usually bound in the minibuffer to |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
135 @kbd{M-n}. If @var{read} is non-@code{nil}, then @var{default} is |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
136 also used as the input to @code{read}, if the user enters empty input. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
137 (If @var{read} is non-@code{nil} and @var{default} is @code{nil}, empty |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
138 input results in an @code{end-of-file} error.) However, in the usual |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
139 case (where @var{read} is @code{nil}), @code{read-from-minibuffer} |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
140 ignores @var{default} when the user enters empty input and returns an |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
141 empty string, @code{""}. In this respect, it is different from all |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
142 the other minibuffer input functions in this chapter. |
6555 | 143 |
144 If @var{keymap} is non-@code{nil}, that keymap is the local keymap to | |
145 use in the minibuffer. If @var{keymap} is omitted or @code{nil}, the | |
146 value of @code{minibuffer-local-map} is used as the keymap. Specifying | |
147 a keymap is the most important way to customize the minibuffer for | |
148 various applications such as completion. | |
149 | |
150 The argument @var{hist} specifies which history list variable to use | |
151 for saving the input and for history commands used in the minibuffer. | |
152 It defaults to @code{minibuffer-history}. @xref{Minibuffer History}. | |
153 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
154 If the variable @code{minibuffer-allow-text-properties} is |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
155 non-@code{nil}, then the string which is returned includes whatever text |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
156 properties were present in the minibuffer. Otherwise all the text |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
157 properties are stripped when the value is returned. |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
158 |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
159 If the argument @var{inherit-input-method} is non-@code{nil}, then the |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
160 minibuffer inherits the current input method (@pxref{Input Methods}) and |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
161 the setting of @code{enable-multibyte-characters} (@pxref{Text |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
162 Representations}) from whichever buffer was current before entering the |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
163 minibuffer. |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
164 |
58360
0e8e74522f85
(Text from Minibuffer): Document KEEP-ALL arg in read-from-minibuffer.
Richard M. Stallman <rms@gnu.org>
parents:
58280
diff
changeset
|
165 If @var{keep-all} is non-@code{nil}, even empty and duplicate inputs |
0e8e74522f85
(Text from Minibuffer): Document KEEP-ALL arg in read-from-minibuffer.
Richard M. Stallman <rms@gnu.org>
parents:
58280
diff
changeset
|
166 are added to the history list. |
0e8e74522f85
(Text from Minibuffer): Document KEEP-ALL arg in read-from-minibuffer.
Richard M. Stallman <rms@gnu.org>
parents:
58280
diff
changeset
|
167 |
55925
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
168 Use of @var{initial-contents} is mostly deprecated; we recommend using |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
169 a non-@code{nil} value only in conjunction with specifying a cons cell |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
170 for @var{hist}. @xref{Initial Input}. |
6555 | 171 @end defun |
172 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
173 @defun read-string prompt &optional initial history default inherit-input-method |
6555 | 174 This function reads a string from the minibuffer and returns it. The |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
175 arguments @var{prompt}, @var{initial}, @var{history} and |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
176 @var{inherit-input-method} are used as in @code{read-from-minibuffer}. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
177 The keymap used is @code{minibuffer-local-map}. |
6555 | 178 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
179 The optional argument @var{default} is used as in |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
180 @code{read-from-minibuffer}, except that, if non-@code{nil}, it also |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
181 specifies a default value to return if the user enters null input. As |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
182 in @code{read-from-minibuffer} it should be a string, or @code{nil}, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
183 which is equivalent to an empty string. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
184 |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
185 This function is a simplified interface to the |
6555 | 186 @code{read-from-minibuffer} function: |
187 | |
188 @smallexample | |
189 @group | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
190 (read-string @var{prompt} @var{initial} @var{history} @var{default} @var{inherit}) |
6555 | 191 @equiv{} |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
192 (let ((value |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
193 (read-from-minibuffer @var{prompt} @var{initial} nil nil |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
194 @var{history} @var{default} @var{inherit}))) |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
195 (if (and (equal value "") @var{default}) |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
196 @var{default} |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
197 value)) |
6555 | 198 @end group |
199 @end smallexample | |
200 @end defun | |
201 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
202 @defvar minibuffer-allow-text-properties |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
203 If this variable is @code{nil}, then @code{read-from-minibuffer} strips |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
204 all text properties from the minibuffer input before returning it. |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
205 This variable also affects @code{read-string}. However, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
206 @code{read-no-blanks-input} (see below), as well as |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
207 @code{read-minibuffer} and related functions (@pxref{Object from |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
208 Minibuffer,, Reading Lisp Objects With the Minibuffer}), and all |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
209 functions that do minibuffer input with completion, discard text |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
210 properties unconditionally, regardless of the value of this variable. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
211 @end defvar |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
212 |
56214
169058aadeda
Change position of @anchor's. Add anchor.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55925
diff
changeset
|
213 @defvar minibuffer-local-map |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
214 @anchor{Definition of minibuffer-local-map} |
6555 | 215 This is the default local keymap for reading from the minibuffer. By |
216 default, it makes the following bindings: | |
217 | |
218 @table @asis | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
219 @item @kbd{C-j} |
6555 | 220 @code{exit-minibuffer} |
221 | |
222 @item @key{RET} | |
223 @code{exit-minibuffer} | |
224 | |
225 @item @kbd{C-g} | |
226 @code{abort-recursive-edit} | |
227 | |
228 @item @kbd{M-n} | |
60042
114da1fc3775
(Text from Minibuffer): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
58360
diff
changeset
|
229 @itemx @key{DOWN} |
6555 | 230 @code{next-history-element} |
231 | |
232 @item @kbd{M-p} | |
60042
114da1fc3775
(Text from Minibuffer): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
58360
diff
changeset
|
233 @itemx @key{UP} |
6555 | 234 @code{previous-history-element} |
235 | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
236 @item @kbd{M-s} |
6555 | 237 @code{next-matching-history-element} |
238 | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
239 @item @kbd{M-r} |
6555 | 240 @code{previous-matching-history-element} |
241 @end table | |
242 @end defvar | |
243 | |
244 @c In version 18, initial is required | |
245 @c Emacs 19 feature | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
246 @defun read-no-blanks-input prompt &optional initial inherit-input-method |
6555 | 247 This function reads a string from the minibuffer, but does not allow |
248 whitespace characters as part of the input: instead, those characters | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
249 terminate the input. The arguments @var{prompt}, @var{initial}, and |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
250 @var{inherit-input-method} are used as in @code{read-from-minibuffer}. |
6555 | 251 |
252 This is a simplified interface to the @code{read-from-minibuffer} | |
253 function, and passes the value of the @code{minibuffer-local-ns-map} | |
254 keymap as the @var{keymap} argument for that function. Since the keymap | |
255 @code{minibuffer-local-ns-map} does not rebind @kbd{C-q}, it @emph{is} | |
256 possible to put a space into the string, by quoting it. | |
257 | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
258 This function discards text properties, regardless of the value of |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
259 @code{minibuffer-allow-text-properties}. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
260 |
6555 | 261 @smallexample |
262 @group | |
263 (read-no-blanks-input @var{prompt} @var{initial}) | |
264 @equiv{} | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
265 (let (minibuffer-allow-text-properties) |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
266 (read-from-minibuffer @var{prompt} @var{initial} minibuffer-local-ns-map)) |
6555 | 267 @end group |
268 @end smallexample | |
269 @end defun | |
270 | |
271 @defvar minibuffer-local-ns-map | |
272 This built-in variable is the keymap used as the minibuffer local keymap | |
273 in the function @code{read-no-blanks-input}. By default, it makes the | |
12098 | 274 following bindings, in addition to those of @code{minibuffer-local-map}: |
6555 | 275 |
276 @table @asis | |
277 @item @key{SPC} | |
278 @cindex @key{SPC} in minibuffer | |
279 @code{exit-minibuffer} | |
280 | |
281 @item @key{TAB} | |
282 @cindex @key{TAB} in minibuffer | |
283 @code{exit-minibuffer} | |
284 | |
285 @item @kbd{?} | |
286 @cindex @kbd{?} in minibuffer | |
287 @code{self-insert-and-exit} | |
288 @end table | |
289 @end defvar | |
290 | |
291 @node Object from Minibuffer | |
292 @section Reading Lisp Objects with the Minibuffer | |
293 | |
294 This section describes functions for reading Lisp objects with the | |
295 minibuffer. | |
296 | |
297 @defun read-minibuffer prompt &optional initial | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
298 This function reads a Lisp object using the minibuffer, and returns it |
6555 | 299 without evaluating it. The arguments @var{prompt} and @var{initial} are |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
300 used as in @code{read-from-minibuffer}. |
6555 | 301 |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
302 This is a simplified interface to the |
6555 | 303 @code{read-from-minibuffer} function: |
304 | |
305 @smallexample | |
306 @group | |
307 (read-minibuffer @var{prompt} @var{initial}) | |
308 @equiv{} | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
309 (let (minibuffer-allow-text-properties) |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
310 (read-from-minibuffer @var{prompt} @var{initial} nil t)) |
6555 | 311 @end group |
312 @end smallexample | |
313 | |
314 Here is an example in which we supply the string @code{"(testing)"} as | |
315 initial input: | |
316 | |
317 @smallexample | |
318 @group | |
319 (read-minibuffer | |
320 "Enter an expression: " (format "%s" '(testing))) | |
321 | |
322 ;; @r{Here is how the minibuffer is displayed:} | |
323 @end group | |
324 | |
325 @group | |
326 ---------- Buffer: Minibuffer ---------- | |
327 Enter an expression: (testing)@point{} | |
328 ---------- Buffer: Minibuffer ---------- | |
329 @end group | |
330 @end smallexample | |
331 | |
332 @noindent | |
333 The user can type @key{RET} immediately to use the initial input as a | |
334 default, or can edit the input. | |
335 @end defun | |
336 | |
337 @defun eval-minibuffer prompt &optional initial | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
338 This function reads a Lisp expression using the minibuffer, evaluates |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
339 it, then returns the result. The arguments @var{prompt} and |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
340 @var{initial} are used as in @code{read-from-minibuffer}. |
6555 | 341 |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
342 This function simply evaluates the result of a call to |
6555 | 343 @code{read-minibuffer}: |
344 | |
345 @smallexample | |
346 @group | |
347 (eval-minibuffer @var{prompt} @var{initial}) | |
348 @equiv{} | |
349 (eval (read-minibuffer @var{prompt} @var{initial})) | |
350 @end group | |
351 @end smallexample | |
352 @end defun | |
353 | |
354 @defun edit-and-eval-command prompt form | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
355 This function reads a Lisp expression in the minibuffer, and then |
6555 | 356 evaluates it. The difference between this command and |
357 @code{eval-minibuffer} is that here the initial @var{form} is not | |
358 optional and it is treated as a Lisp object to be converted to printed | |
359 representation rather than as a string of text. It is printed with | |
360 @code{prin1}, so if it is a string, double-quote characters (@samp{"}) | |
361 appear in the initial text. @xref{Output Functions}. | |
362 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
363 The first thing @code{edit-and-eval-command} does is to activate the |
6555 | 364 minibuffer with @var{prompt} as the prompt. Then it inserts the printed |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
365 representation of @var{form} in the minibuffer, and lets the user edit it. |
6555 | 366 When the user exits the minibuffer, the edited text is read with |
367 @code{read} and then evaluated. The resulting value becomes the value | |
368 of @code{edit-and-eval-command}. | |
369 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
370 In the following example, we offer the user an expression with initial |
6555 | 371 text which is a valid form already: |
372 | |
373 @smallexample | |
374 @group | |
375 (edit-and-eval-command "Please edit: " '(forward-word 1)) | |
376 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
377 ;; @r{After evaluation of the preceding expression,} |
6555 | 378 ;; @r{the following appears in the minibuffer:} |
379 @end group | |
380 | |
381 @group | |
382 ---------- Buffer: Minibuffer ---------- | |
383 Please edit: (forward-word 1)@point{} | |
384 ---------- Buffer: Minibuffer ---------- | |
385 @end group | |
386 @end smallexample | |
387 | |
388 @noindent | |
389 Typing @key{RET} right away would exit the minibuffer and evaluate the | |
390 expression, thus moving point forward one word. | |
391 @code{edit-and-eval-command} returns @code{nil} in this example. | |
392 @end defun | |
393 | |
394 @node Minibuffer History | |
395 @section Minibuffer History | |
396 @cindex minibuffer history | |
397 @cindex history list | |
398 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
399 A @dfn{minibuffer history list} records previous minibuffer inputs so |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
400 the user can reuse them conveniently. A history list is actually a |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
401 symbol, not a list; it is a variable whose value is a list of strings |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
402 (previous inputs), most recent first. |
6555 | 403 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
404 There are many separate history lists, used for different kinds of |
6555 | 405 inputs. It's the Lisp programmer's job to specify the right history |
406 list for each use of the minibuffer. | |
407 | |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
408 You specify the history list with the optional @var{hist} argument |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
409 to either @code{read-from-minibuffer} or @code{completing-read}. Here |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
410 are the possible values for it: |
6555 | 411 |
412 @table @asis | |
413 @item @var{variable} | |
414 Use @var{variable} (a symbol) as the history list. | |
415 | |
416 @item (@var{variable} . @var{startpos}) | |
417 Use @var{variable} (a symbol) as the history list, and assume that the | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
418 initial history position is @var{startpos} (a nonnegative integer). |
6555 | 419 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
420 Specifying 0 for @var{startpos} is equivalent to just specifying the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
421 symbol @var{variable}. @code{previous-history-element} will display |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
422 the most recent element of the history list in the minibuffer. If you |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
423 specify a positive @var{startpos}, the minibuffer history functions |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
424 behave as if @code{(elt @var{variable} (1- @var{STARTPOS}))} were the |
55925
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
425 history element currently shown in the minibuffer. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
426 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
427 For consistency, you should also specify that element of the history |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
428 as the initial minibuffer contents, using the @var{initial} argument |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
429 to the minibuffer input function (@pxref{Initial Input}). |
6555 | 430 @end table |
431 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
432 If you don't specify @var{hist}, then the default history list |
6555 | 433 @code{minibuffer-history} is used. For other standard history lists, |
434 see below. You can also create your own history list variable; just | |
435 initialize it to @code{nil} before the first use. | |
436 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
437 Both @code{read-from-minibuffer} and @code{completing-read} add new |
6555 | 438 elements to the history list automatically, and provide commands to |
439 allow the user to reuse items on the list. The only thing your program | |
440 needs to do to use a history list is to initialize it and to pass its | |
441 name to the input functions when you wish. But it is safe to modify the | |
442 list by hand when the minibuffer input functions are not using it. | |
443 | |
48730
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
444 Emacs functions that add a new element to a history list can also |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
445 delete old elements if the list gets too long. The variable |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
446 @code{history-length} specifies the maximum length for most history |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
447 lists. To specify a different maximum length for a particular history |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
448 list, put the length in the @code{history-length} property of the |
57017
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
449 history list symbol. The variable @code{history-delete-duplicates} |
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
450 specifies whether to delete duplicates in history. |
48730
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
451 |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
452 @defvar history-length |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
453 The value of this variable specifies the maximum length for all |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
454 history lists that don't specify their own maximum lengths. If the |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
455 value is @code{t}, that means there no maximum (don't delete old |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
456 elements). |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
457 @end defvar |
e7f0249cfca8
Document history-length.
Richard M. Stallman <rms@gnu.org>
parents:
46915
diff
changeset
|
458 |
57017
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
459 @defvar history-delete-duplicates |
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
460 If the value of this variable is @code{t}, that means when adding a |
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
461 new history element, all previous identical elements are deleted. |
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
462 @end defvar |
9f99ae07c452
(Minibuffer History): Add `history-delete-duplicates'.
Juri Linkov <juri@jurta.org>
parents:
56606
diff
changeset
|
463 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
464 Here are some of the standard minibuffer history list variables: |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
465 |
6555 | 466 @defvar minibuffer-history |
467 The default history list for minibuffer history input. | |
468 @end defvar | |
469 | |
470 @defvar query-replace-history | |
471 A history list for arguments to @code{query-replace} (and similar | |
472 arguments to other commands). | |
473 @end defvar | |
474 | |
475 @defvar file-name-history | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
476 A history list for file-name arguments. |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
477 @end defvar |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
478 |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
479 @defvar buffer-name-history |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
480 A history list for buffer-name arguments. |
6555 | 481 @end defvar |
482 | |
483 @defvar regexp-history | |
484 A history list for regular expression arguments. | |
485 @end defvar | |
486 | |
487 @defvar extended-command-history | |
488 A history list for arguments that are names of extended commands. | |
489 @end defvar | |
490 | |
491 @defvar shell-command-history | |
492 A history list for arguments that are shell commands. | |
493 @end defvar | |
494 | |
495 @defvar read-expression-history | |
496 A history list for arguments that are Lisp expressions to evaluate. | |
497 @end defvar | |
498 | |
55925
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
499 @node Initial Input |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
500 @section Initial Input |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
501 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
502 Several of the functions for minibuffer input have an argument called |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
503 @var{initial} or @var{initial-contents}. This is a mostly-deprecated |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
504 feature for specifiying that the minibuffer should start out with |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
505 certain text, instead of empty as usual. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
506 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
507 If @var{initial} is a string, the minibuffer starts out containing the |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
508 text of the string, with point at the end, when the user starts to |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
509 edit the text. If the user simply types @key{RET} to exit the |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
510 minibuffer, it will use the initial input string to determine the |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
511 value to return. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
512 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
513 @strong{We discourage use of a non-@code{nil} value for |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
514 @var{initial}}, because initial input is an intrusive interface. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
515 History lists and default values provide a much more convenient method |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
516 to offer useful default inputs to the user. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
517 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
518 There is just one situation where you should specify a string for an |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
519 @var{initial} argument. This is when you specify a cons cell for the |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
520 @var{hist} or @var{history} argument. @xref{Minibuffer History}. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
521 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
522 @var{initial} can also be a cons cell of the form @code{(@var{string} |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
523 . @var{position})}. This means to insert @var{string} in the |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
524 minibuffer but put point at @var{position} within the string's text. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
525 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
526 As a historical accident, @var{position} was implemented |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
527 inconsistently in different functions. In @code{completing-read}, |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
528 @var{position}'s value is interpreted as origin-zero; that is, a value |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
529 of 0 means the beginning of the string, 1 means after the first |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
530 character, etc. In @code{read-minibuffer}, and the other |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
531 non-completion minibuffer input functions that support this argument, |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
532 1 means the beginning of the string 2 means after the first character, |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
533 etc. |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
534 |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
535 Use of a cons cell as the value for @var{initial} arguments is |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
536 deprecated in user code. |
56214
169058aadeda
Change position of @anchor's. Add anchor.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55925
diff
changeset
|
537 |
6555 | 538 @node Completion |
539 @section Completion | |
540 @cindex completion | |
541 | |
542 @dfn{Completion} is a feature that fills in the rest of a name | |
543 starting from an abbreviation for it. Completion works by comparing the | |
544 user's input against a list of valid names and determining how much of | |
545 the name is determined uniquely by what the user has typed. For | |
546 example, when you type @kbd{C-x b} (@code{switch-to-buffer}) and then | |
547 type the first few letters of the name of the buffer to which you wish | |
548 to switch, and then type @key{TAB} (@code{minibuffer-complete}), Emacs | |
549 extends the name as far as it can. | |
550 | |
551 Standard Emacs commands offer completion for names of symbols, files, | |
552 buffers, and processes; with the functions in this section, you can | |
553 implement completion for other kinds of names. | |
554 | |
555 The @code{try-completion} function is the basic primitive for | |
556 completion: it returns the longest determined completion of a given | |
557 initial string, with a given set of strings to match against. | |
558 | |
559 The function @code{completing-read} provides a higher-level interface | |
560 for completion. A call to @code{completing-read} specifies how to | |
561 determine the list of valid names. The function then activates the | |
562 minibuffer with a local keymap that binds a few keys to commands useful | |
563 for completion. Other functions provide convenient simple interfaces | |
564 for reading certain kinds of names with completion. | |
565 | |
566 @menu | |
567 * Basic Completion:: Low-level functions for completing strings. | |
568 (These are too low level to use the minibuffer.) | |
569 * Minibuffer Completion:: Invoking the minibuffer with completion. | |
570 * Completion Commands:: Minibuffer commands that do completion. | |
571 * High-Level Completion:: Convenient special cases of completion | |
572 (reading buffer name, file name, etc.) | |
573 * Reading File Names:: Using completion to read file names. | |
51914
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
574 * Programmed Completion:: Writing your own completion-function. |
6555 | 575 @end menu |
576 | |
577 @node Basic Completion | |
578 @subsection Basic Completion Functions | |
579 | |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
580 The completion functions @code{try-completion}, |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
581 @code{all-completions} and @code{test-completion} have nothing in |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
582 themselves to do with minibuffers. We describe them in this chapter |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
583 so as to keep them near the higher-level completion features that do |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
584 use the minibuffer. |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
585 |
68577
488f65041f04
(Basic Completion): Completion alists are risky.
Richard M. Stallman <rms@gnu.org>
parents:
67881
diff
changeset
|
586 If you store a completion alist in a variable, you should mark the |
488f65041f04
(Basic Completion): Completion alists are risky.
Richard M. Stallman <rms@gnu.org>
parents:
67881
diff
changeset
|
587 variable as ``risky'' with a non-@code{nil} |
488f65041f04
(Basic Completion): Completion alists are risky.
Richard M. Stallman <rms@gnu.org>
parents:
67881
diff
changeset
|
588 @code{risky-local-variable} property. |
488f65041f04
(Basic Completion): Completion alists are risky.
Richard M. Stallman <rms@gnu.org>
parents:
67881
diff
changeset
|
589 |
6555 | 590 @defun try-completion string collection &optional predicate |
591 This function returns the longest common substring of all possible | |
592 completions of @var{string} in @var{collection}. The value of | |
60211
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
593 @var{collection} must be a list of strings or symbols, an alist, an |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
594 obarray, a hash table, or a function that implements a virtual set of |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
595 strings (see below). |
6555 | 596 |
597 Completion compares @var{string} against each of the permissible | |
598 completions specified by @var{collection}; if the beginning of the | |
599 permissible completion equals @var{string}, it matches. If no permissible | |
600 completions match, @code{try-completion} returns @code{nil}. If only | |
601 one permissible completion matches, and the match is exact, then | |
602 @code{try-completion} returns @code{t}. Otherwise, the value is the | |
603 longest initial sequence common to all the permissible completions that | |
604 match. | |
605 | |
606 If @var{collection} is an alist (@pxref{Association Lists}), the | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
607 permissible completions are the elements of the alist that are either |
60211
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
608 strings, symbols, or conses whose @sc{car} is a string or symbol. |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
609 Symbols are converted to strings using @code{symbol-name}. |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
610 Other elements of the alist are ignored. (Remember that in Emacs Lisp, |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
611 the elements of alists do not @emph{have} to be conses.) As all |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
612 elements of the alist can be strings, this case actually includes |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
613 lists of strings or symbols, even though we usually do not think of |
31cb6f65b5d5
(Basic Completion): Allow symbols in addition to
Kim F. Storm <storm@cua.dk>
parents:
60042
diff
changeset
|
614 such lists as alists. |
6555 | 615 |
616 @cindex obarray in completion | |
617 If @var{collection} is an obarray (@pxref{Creating Symbols}), the names | |
618 of all symbols in the obarray form the set of permissible completions. The | |
619 global variable @code{obarray} holds an obarray containing the names of | |
620 all interned Lisp symbols. | |
621 | |
622 Note that the only valid way to make a new obarray is to create it | |
623 empty and then add symbols to it one by one using @code{intern}. | |
624 Also, you cannot intern a given symbol in more than one obarray. | |
625 | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
626 If @var{collection} is a hash table, then the keys that are strings |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
627 are the possible completions. Other keys are ignored. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
628 |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
629 You can also use a symbol that is a function as @var{collection}. Then |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
630 the function is solely responsible for performing completion; |
6555 | 631 @code{try-completion} returns whatever this function returns. The |
632 function is called with three arguments: @var{string}, @var{predicate} | |
633 and @code{nil}. (The reason for the third argument is so that the same | |
634 function can be used in @code{all-completions} and do the appropriate | |
635 thing in either case.) @xref{Programmed Completion}. | |
636 | |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
637 If the argument @var{predicate} is non-@code{nil}, then it must be a |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
638 function of one argument, unless @var{collection} is a hash table, in |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
639 which case it should be a function of two arguments. It is used to |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
640 test each possible match, and the match is accepted only if |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
641 @var{predicate} returns non-@code{nil}. The argument given to |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
642 @var{predicate} is either a string or a cons cell (the @sc{car} of |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
643 which is a string) from the alist, or a symbol (@emph{not} a symbol |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
644 name) from the obarray. If @var{collection} is a hash table, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
645 @var{predicate} is called with two arguments, the string key and the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
646 associated value. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
647 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
648 In addition, to be acceptable, a completion must also match all the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
649 regular expressions in @code{completion-regexp-list}. (Unless |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
650 @var{collection} is a function, in which case that function has to |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
651 handle @code{completion-regexp-list} itself.) |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
652 |
6555 | 653 In the first of the following examples, the string @samp{foo} is |
654 matched by three of the alist @sc{car}s. All of the matches begin with | |
655 the characters @samp{fooba}, so that is the result. In the second | |
656 example, there is only one possible match, and it is exact, so the value | |
657 is @code{t}. | |
658 | |
659 @smallexample | |
660 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
661 (try-completion |
6555 | 662 "foo" |
663 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))) | |
664 @result{} "fooba" | |
665 @end group | |
666 | |
667 @group | |
668 (try-completion "foo" '(("barfoo" 2) ("foo" 3))) | |
669 @result{} t | |
670 @end group | |
671 @end smallexample | |
672 | |
673 In the following example, numerous symbols begin with the characters | |
674 @samp{forw}, and all of them begin with the word @samp{forward}. In | |
675 most of the symbols, this is followed with a @samp{-}, but not in all, | |
676 so no more than @samp{forward} can be completed. | |
677 | |
678 @smallexample | |
679 @group | |
680 (try-completion "forw" obarray) | |
681 @result{} "forward" | |
682 @end group | |
683 @end smallexample | |
684 | |
685 Finally, in the following example, only two of the three possible | |
686 matches pass the predicate @code{test} (the string @samp{foobaz} is | |
687 too short). Both of those begin with the string @samp{foobar}. | |
688 | |
689 @smallexample | |
690 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
691 (defun test (s) |
6555 | 692 (> (length (car s)) 6)) |
693 @result{} test | |
694 @end group | |
695 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
696 (try-completion |
6555 | 697 "foo" |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
698 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
699 'test) |
6555 | 700 @result{} "foobar" |
701 @end group | |
702 @end smallexample | |
703 @end defun | |
704 | |
12067 | 705 @defun all-completions string collection &optional predicate nospace |
6555 | 706 This function returns a list of all possible completions of |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
707 @var{string}. The arguments to this function (aside from |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
708 @var{nospace}) are the same as those of @code{try-completion}. Also, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
709 this function uses @code{completion-regexp-list} in the same way that |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
710 @code{try-completion} does. The optional argument @var{nospace} only |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
711 matters if @var{string} is the empty string. In that case, if |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
712 @var{nospace} is non-@code{nil}, completions that start with a space |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
713 are ignored. |
6555 | 714 |
715 If @var{collection} is a function, it is called with three arguments: | |
716 @var{string}, @var{predicate} and @code{t}; then @code{all-completions} | |
717 returns whatever the function returns. @xref{Programmed Completion}. | |
718 | |
719 Here is an example, using the function @code{test} shown in the | |
720 example for @code{try-completion}: | |
721 | |
722 @smallexample | |
723 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
724 (defun test (s) |
6555 | 725 (> (length (car s)) 6)) |
726 @result{} test | |
727 @end group | |
728 | |
729 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
730 (all-completions |
6555 | 731 "foo" |
732 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
733 'test) |
6555 | 734 @result{} ("foobar1" "foobar2") |
735 @end group | |
736 @end smallexample | |
737 @end defun | |
738 | |
56214
169058aadeda
Change position of @anchor's. Add anchor.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55925
diff
changeset
|
739 @defun test-completion string collection &optional predicate |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
740 @anchor{Definition of test-completion} |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
741 This function returns non-@code{nil} if @var{string} is a valid |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
742 completion possibility specified by @var{collection} and |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
743 @var{predicate}. The arguments are the same as in |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
744 @code{try-completion}. For instance, if @var{collection} is a list of |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
745 strings, this is true if @var{string} appears in the list and |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
746 @var{predicate} is satisfied. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
747 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
748 @code{test-completion} uses @code{completion-regexp-list} in the same |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
749 way that @code{try-completion} does. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
750 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
751 If @var{predicate} is non-@code{nil} and if @var{collection} contains |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
752 several strings that are equal to each other, as determined by |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
753 @code{compare-strings} according to @code{completion-ignore-case}, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
754 then @var{predicate} should accept either all or none of them. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
755 Otherwise, the return value of @code{test-completion} is essentially |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
756 unpredictable. |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
757 |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
758 If @var{collection} is a function, it is called with three arguments, |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
759 the values @var{string}, @var{predicate} and @code{lambda}; whatever |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
760 it returns, @code{test-completion} returns in turn. |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
761 @end defun |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
762 |
6555 | 763 @defvar completion-ignore-case |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
764 If the value of this variable is non-@code{nil}, Emacs does not |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
765 consider case significant in completion. |
6555 | 766 @end defvar |
767 | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
768 @defvar completion-regexp-list |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
769 This is a list of regular expressions. The completion functions only |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
770 consider a completion acceptable if it matches all regular expressions |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
771 in this list, with @code{case-fold-search} (@pxref{Searching and Case}) |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
772 bound to the value of @code{completion-ignore-case}. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
773 @end defvar |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
774 |
67818
5a83c9ee8aa6
(lazy-completion-table): Remove argument `args'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67629
diff
changeset
|
775 @defmac lazy-completion-table var fun |
51914
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
776 This macro provides a way to initialize the variable @var{var} as a |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
777 collection for completion in a lazy way, not computing its actual |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
778 contents until they are first needed. You use this macro to produce a |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
779 value that you store in @var{var}. The actual computation of the |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
780 proper value is done the first time you do completion using @var{var}. |
67818
5a83c9ee8aa6
(lazy-completion-table): Remove argument `args'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67629
diff
changeset
|
781 It is done by calling @var{fun} with no arguments. The |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
782 value @var{fun} returns becomes the permanent value of @var{var}. |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
783 |
67881
d9ec339158fe
(Basic Completion): Update lazy-completion-table examples for removal
Luc Teirlinck <teirllm@auburn.edu>
parents:
67818
diff
changeset
|
784 Here is an example of use: |
51914
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
785 |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
786 @smallexample |
67881
d9ec339158fe
(Basic Completion): Update lazy-completion-table examples for removal
Luc Teirlinck <teirllm@auburn.edu>
parents:
67818
diff
changeset
|
787 (defvar foo (lazy-completion-table foo make-my-alist)) |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
788 @end smallexample |
51914
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
789 @end defmac |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
790 |
6555 | 791 @node Minibuffer Completion |
792 @subsection Completion and the Minibuffer | |
793 | |
794 This section describes the basic interface for reading from the | |
795 minibuffer with completion. | |
796 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
797 @defun completing-read prompt collection &optional predicate require-match initial hist default inherit-input-method |
6555 | 798 This function reads a string in the minibuffer, assisting the user by |
799 providing completion. It activates the minibuffer with prompt | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
800 @var{prompt}, which must be a string. |
6555 | 801 |
802 The actual completion is done by passing @var{collection} and | |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
803 @var{predicate} to the function @code{try-completion}. This happens |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
804 in certain commands bound in the local keymaps used for completion. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
805 Some of these commands also call @code{test-completion}. Thus, if |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
806 @var{predicate} is non-@code{nil}, it should be compatible with |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
807 @var{collection} and @code{completion-ignore-case}. @xref{Definition |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
808 of test-completion}. |
6555 | 809 |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
810 If @var{require-match} is @code{nil}, the exit commands work regardless |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
811 of the input in the minibuffer. If @var{require-match} is @code{t}, the |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
812 usual minibuffer exit commands won't exit unless the input completes to |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
813 an element of @var{collection}. If @var{require-match} is neither |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
814 @code{nil} nor @code{t}, then the exit commands won't exit unless the |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
815 input already in the buffer matches an element of @var{collection}. |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
816 |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
817 However, empty input is always permitted, regardless of the value of |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
818 @var{require-match}; in that case, @code{completing-read} returns |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
819 @var{default}, or @code{""}, if @var{default} is @code{nil}. The |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
820 value of @var{default} (if non-@code{nil}) is also available to the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
821 user through the history commands. |
6555 | 822 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
823 The function @code{completing-read} uses |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
824 @code{minibuffer-local-completion-map} as the keymap if |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
825 @var{require-match} is @code{nil}, and uses |
6555 | 826 @code{minibuffer-local-must-match-map} if @var{require-match} is |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
827 non-@code{nil}. @xref{Completion Commands}. |
6555 | 828 |
829 The argument @var{hist} specifies which history list variable to use for | |
830 saving the input and for minibuffer history commands. It defaults to | |
831 @code{minibuffer-history}. @xref{Minibuffer History}. | |
832 | |
55925
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
833 The argument @var{initial} is mostly deprecated; we recommend using a |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
834 non-@code{nil} value only in conjunction with specifying a cons cell |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
835 for @var{hist}. @xref{Initial Input}. For default input, use |
b1e16cd7f843
(Minibuffer Completion): For INITIAL arg,
Richard M. Stallman <rms@gnu.org>
parents:
54327
diff
changeset
|
836 @var{default} instead. |
38158
a137fb27df08
Deprecate use of the INITIAL argument for completing-read.
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
837 |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
838 If the argument @var{inherit-input-method} is non-@code{nil}, then the |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
839 minibuffer inherits the current input method (@pxref{Input |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
840 Methods}) and the setting of @code{enable-multibyte-characters} |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
841 (@pxref{Text Representations}) from whichever buffer was current before |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
842 entering the minibuffer. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
843 |
58280
08330213d737
(Minibuffer Completion): When ignoring case,
Richard M. Stallman <rms@gnu.org>
parents:
57790
diff
changeset
|
844 If the built-in variable @code{completion-ignore-case} is |
08330213d737
(Minibuffer Completion): When ignoring case,
Richard M. Stallman <rms@gnu.org>
parents:
57790
diff
changeset
|
845 non-@code{nil}, completion ignores case when comparing the input |
08330213d737
(Minibuffer Completion): When ignoring case,
Richard M. Stallman <rms@gnu.org>
parents:
57790
diff
changeset
|
846 against the possible matches. @xref{Basic Completion}. In this mode |
08330213d737
(Minibuffer Completion): When ignoring case,
Richard M. Stallman <rms@gnu.org>
parents:
57790
diff
changeset
|
847 of operation, @var{predicate} must also ignore case, or you will get |
08330213d737
(Minibuffer Completion): When ignoring case,
Richard M. Stallman <rms@gnu.org>
parents:
57790
diff
changeset
|
848 surprising results. |
6555 | 849 |
850 Here's an example of using @code{completing-read}: | |
851 | |
852 @smallexample | |
853 @group | |
854 (completing-read | |
855 "Complete a foo: " | |
856 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) | |
857 nil t "fo") | |
858 @end group | |
859 | |
860 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
861 ;; @r{After evaluation of the preceding expression,} |
6555 | 862 ;; @r{the following appears in the minibuffer:} |
863 | |
864 ---------- Buffer: Minibuffer ---------- | |
865 Complete a foo: fo@point{} | |
866 ---------- Buffer: Minibuffer ---------- | |
867 @end group | |
868 @end smallexample | |
869 | |
870 @noindent | |
871 If the user then types @kbd{@key{DEL} @key{DEL} b @key{RET}}, | |
872 @code{completing-read} returns @code{barfoo}. | |
873 | |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
874 The @code{completing-read} function binds variables to pass |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
875 information to the commands that actually do completion. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
876 They are described in the following section. |
6555 | 877 @end defun |
878 | |
879 @node Completion Commands | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
23147
diff
changeset
|
880 @subsection Minibuffer Commands that Do Completion |
6555 | 881 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
882 This section describes the keymaps, commands and user options used |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
883 in the minibuffer to do completion. The description refers to the |
53930
5ef587160656
*** empty log message ***
Luc Teirlinck <teirllm@auburn.edu>
parents:
53801
diff
changeset
|
884 situation when Partial Completion mode is disabled (as it is by |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
885 default). When enabled, this minor mode uses its own alternatives to |
54327
1f35da88bdd8
(Completion Commands): Add xref to Emacs manual for Partial Completion mode.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53930
diff
changeset
|
886 some of the commands described below. @xref{Completion Options,,, |
1f35da88bdd8
(Completion Commands): Add xref to Emacs manual for Partial Completion mode.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53930
diff
changeset
|
887 emacs, The GNU Emacs Manual}, for a short description of Partial |
1f35da88bdd8
(Completion Commands): Add xref to Emacs manual for Partial Completion mode.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53930
diff
changeset
|
888 Completion mode. |
6555 | 889 |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
890 @defvar minibuffer-completion-table |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
891 The value of this variable is the collection used for completion in |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
892 the minibuffer. This is the global variable that contains what |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
893 @code{completing-read} passes to @code{try-completion}. It is used by |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
894 minibuffer completion commands such as @code{minibuffer-complete-word}. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
895 @end defvar |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
896 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
897 @defvar minibuffer-completion-predicate |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
898 This variable's value is the predicate that @code{completing-read} |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
899 passes to @code{try-completion}. The variable is also used by the other |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
900 minibuffer completion functions. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
901 @end defvar |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
902 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
903 @defvar minibuffer-completion-confirm |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
904 When the value of this variable is non-@code{nil}, Emacs asks for |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
905 confirmation of a completion before exiting the minibuffer. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
906 @code{completing-read} binds this variable, and the function |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
907 @code{minibuffer-complete-and-exit} checks the value before exiting. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
908 @end defvar |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
909 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
910 @deffn Command minibuffer-complete-word |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
911 This function completes the minibuffer contents by at most a single |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
912 word. Even if the minibuffer contents have only one completion, |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
913 @code{minibuffer-complete-word} does not add any characters beyond the |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
914 first character that is not a word constituent. @xref{Syntax Tables}. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
915 @end deffn |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
916 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
917 @deffn Command minibuffer-complete |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
918 This function completes the minibuffer contents as far as possible. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
919 @end deffn |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
920 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
921 @deffn Command minibuffer-complete-and-exit |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
922 This function completes the minibuffer contents, and exits if |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
923 confirmation is not required, i.e., if |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
924 @code{minibuffer-completion-confirm} is @code{nil}. If confirmation |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
925 @emph{is} required, it is given by repeating this command |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
926 immediately---the command is programmed to work without confirmation |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
927 when run twice in succession. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
928 @end deffn |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
929 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
930 @deffn Command minibuffer-completion-help |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
931 This function creates a list of the possible completions of the |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
932 current minibuffer contents. It works by calling @code{all-completions} |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
933 using the value of the variable @code{minibuffer-completion-table} as |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
934 the @var{collection} argument, and the value of |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
935 @code{minibuffer-completion-predicate} as the @var{predicate} argument. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
936 The list of completions is displayed as text in a buffer named |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
937 @samp{*Completions*}. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
938 @end deffn |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
939 |
66468
448890268bf7
Write about new optional argument for `display-completion-list'.
Masatake YAMATO <jet@gyve.org>
parents:
65758
diff
changeset
|
940 @defun display-completion-list completions &optional common-substring |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
941 This function displays @var{completions} to the stream in |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
942 @code{standard-output}, usually a buffer. (@xref{Read and Print}, for more |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
943 information about streams.) The argument @var{completions} is normally |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
944 a list of completions just returned by @code{all-completions}, but it |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
945 does not have to be. Each element may be a symbol or a string, either |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
946 of which is simply printed. It can also be a list of two strings, |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
947 which is printed as if the strings were concatenated. The first of |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
948 the two strings is the actual completion, the second string serves as |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
949 annotation. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
950 |
66506
8abfaaf2f6f1
(Completion Commands): Clean up prev change.
Richard M. Stallman <rms@gnu.org>
parents:
66468
diff
changeset
|
951 The argument @var{common-substring} is the prefix that is common to |
8abfaaf2f6f1
(Completion Commands): Clean up prev change.
Richard M. Stallman <rms@gnu.org>
parents:
66468
diff
changeset
|
952 all the completions. With normal Emacs completion, it is usually the |
8abfaaf2f6f1
(Completion Commands): Clean up prev change.
Richard M. Stallman <rms@gnu.org>
parents:
66468
diff
changeset
|
953 same as the string that was completed. @code{display-completion-list} |
8abfaaf2f6f1
(Completion Commands): Clean up prev change.
Richard M. Stallman <rms@gnu.org>
parents:
66468
diff
changeset
|
954 uses this to highlight text in the completion list for better visual |
8abfaaf2f6f1
(Completion Commands): Clean up prev change.
Richard M. Stallman <rms@gnu.org>
parents:
66468
diff
changeset
|
955 feedback. This is not needed in the minibuffer; for minibuffer |
8abfaaf2f6f1
(Completion Commands): Clean up prev change.
Richard M. Stallman <rms@gnu.org>
parents:
66468
diff
changeset
|
956 completion, you can pass @code{nil}. |
66468
448890268bf7
Write about new optional argument for `display-completion-list'.
Masatake YAMATO <jet@gyve.org>
parents:
65758
diff
changeset
|
957 |
67881
d9ec339158fe
(Basic Completion): Update lazy-completion-table examples for removal
Luc Teirlinck <teirllm@auburn.edu>
parents:
67818
diff
changeset
|
958 This function is called by @code{minibuffer-completion-help}. The |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
959 most common way to use it is together with |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
960 @code{with-output-to-temp-buffer}, like this: |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
961 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
962 @example |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
963 (with-output-to-temp-buffer "*Completions*" |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
964 (display-completion-list |
66468
448890268bf7
Write about new optional argument for `display-completion-list'.
Masatake YAMATO <jet@gyve.org>
parents:
65758
diff
changeset
|
965 (all-completions (buffer-string) my-alist) |
448890268bf7
Write about new optional argument for `display-completion-list'.
Masatake YAMATO <jet@gyve.org>
parents:
65758
diff
changeset
|
966 (buffer-string))) |
63582
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
967 @end example |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
968 @end defun |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
969 |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
970 @defopt completion-auto-help |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
971 If this variable is non-@code{nil}, the completion commands |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
972 automatically display a list of possible completions whenever nothing |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
973 can be completed because the next character is not uniquely determined. |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
974 @end defopt |
6dfe79da09ed
Fix formatting ugliness.
Richard M. Stallman <rms@gnu.org>
parents:
62595
diff
changeset
|
975 |
6555 | 976 @defvar minibuffer-local-completion-map |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
977 @code{completing-read} uses this value as the local keymap when an |
6555 | 978 exact match of one of the completions is not required. By default, this |
979 keymap makes the following bindings: | |
980 | |
981 @table @asis | |
982 @item @kbd{?} | |
983 @code{minibuffer-completion-help} | |
984 | |
985 @item @key{SPC} | |
986 @code{minibuffer-complete-word} | |
987 | |
988 @item @key{TAB} | |
989 @code{minibuffer-complete} | |
990 @end table | |
991 | |
992 @noindent | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
993 with other characters bound as in @code{minibuffer-local-map} |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
994 (@pxref{Definition of minibuffer-local-map}). |
6555 | 995 @end defvar |
996 | |
997 @defvar minibuffer-local-must-match-map | |
998 @code{completing-read} uses this value as the local keymap when an | |
999 exact match of one of the completions is required. Therefore, no keys | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1000 are bound to @code{exit-minibuffer}, the command that exits the |
6555 | 1001 minibuffer unconditionally. By default, this keymap makes the following |
1002 bindings: | |
1003 | |
1004 @table @asis | |
1005 @item @kbd{?} | |
1006 @code{minibuffer-completion-help} | |
1007 | |
1008 @item @key{SPC} | |
1009 @code{minibuffer-complete-word} | |
1010 | |
1011 @item @key{TAB} | |
1012 @code{minibuffer-complete} | |
1013 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1014 @item @kbd{C-j} |
6555 | 1015 @code{minibuffer-complete-and-exit} |
1016 | |
1017 @item @key{RET} | |
1018 @code{minibuffer-complete-and-exit} | |
1019 @end table | |
1020 | |
1021 @noindent | |
1022 with other characters bound as in @code{minibuffer-local-map}. | |
1023 @end defvar | |
1024 | |
67396
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1025 @defvar minibuffer-local-filename-completion-map |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1026 This is like @code{minibuffer-local-completion-map} |
67499
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1027 except that it does not bind @key{SPC}. This keymap is used by the |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1028 function @code{read-file-name}. |
67396
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1029 @end defvar |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1030 |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1031 @defvar minibuffer-local-must-match-filename-map |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1032 This is like @code{minibuffer-local-must-match-map} |
67499
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1033 except that it does not bind @key{SPC}. This keymap is used by the |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1034 function @code{read-file-name}. |
67396
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1035 @end defvar |
2b8ecf96107e
(Intro to Minibuffers): Replace list of local maps
Richard M. Stallman <rms@gnu.org>
parents:
66506
diff
changeset
|
1036 |
6555 | 1037 @node High-Level Completion |
1038 @subsection High-Level Completion Functions | |
1039 | |
1040 This section describes the higher-level convenient functions for | |
1041 reading certain sorts of names with completion. | |
1042 | |
12098 | 1043 In most cases, you should not call these functions in the middle of a |
1044 Lisp function. When possible, do all minibuffer input as part of | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1045 reading the arguments for a command, in the @code{interactive} |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1046 specification. @xref{Defining Commands}. |
12098 | 1047 |
6555 | 1048 @defun read-buffer prompt &optional default existing |
1049 This function reads the name of a buffer and returns it as a string. | |
1050 The argument @var{default} is the default name to use, the value to | |
1051 return if the user exits with an empty minibuffer. If non-@code{nil}, | |
1052 it should be a string or a buffer. It is mentioned in the prompt, but | |
1053 is not inserted in the minibuffer as initial input. | |
1054 | |
65758
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1055 The argument @var{prompt} should be a string ending with a colon and a |
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1056 space. If @var{default} is non-@code{nil}, the function inserts it in |
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1057 @var{prompt} before the colon to follow the convention for reading from |
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1058 the minibuffer with a default value (@pxref{Programming Tips}). |
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1059 |
6555 | 1060 If @var{existing} is non-@code{nil}, then the name specified must be |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1061 that of an existing buffer. The usual commands to exit the minibuffer |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1062 do not exit if the text is not valid, and @key{RET} does completion to |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1063 attempt to find a valid name. If @var{existing} is neither @code{nil} |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1064 nor @code{t}, confirmation is required after completion. (However, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1065 @var{default} is not checked for validity; it is returned, whatever it |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1066 is, if the user exits with the minibuffer empty.) |
6555 | 1067 |
1068 In the following example, the user enters @samp{minibuffer.t}, and | |
1069 then types @key{RET}. The argument @var{existing} is @code{t}, and the | |
1070 only buffer name starting with the given input is | |
1071 @samp{minibuffer.texi}, so that name is the value. | |
1072 | |
1073 @example | |
65758
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1074 (read-buffer "Buffer name: " "foo" t) |
6555 | 1075 @group |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1076 ;; @r{After evaluation of the preceding expression,} |
6555 | 1077 ;; @r{the following prompt appears,} |
1078 ;; @r{with an empty minibuffer:} | |
1079 @end group | |
1080 | |
1081 @group | |
1082 ---------- Buffer: Minibuffer ---------- | |
65758
028c8f536edb
(High-Level Completion): Explain that the prompt
Romain Francoise <romain@orebokech.com>
parents:
64889
diff
changeset
|
1083 Buffer name (default foo): @point{} |
6555 | 1084 ---------- Buffer: Minibuffer ---------- |
1085 @end group | |
1086 | |
1087 @group | |
1088 ;; @r{The user types @kbd{minibuffer.t @key{RET}}.} | |
1089 @result{} "minibuffer.texi" | |
1090 @end group | |
1091 @end example | |
1092 @end defun | |
1093 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1094 @defvar read-buffer-function |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1095 This variable specifies how to read buffer names. For example, if you |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1096 set this variable to @code{iswitchb-read-buffer}, all Emacs commands |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1097 that call @code{read-buffer} to read a buffer name will actually use the |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1098 @code{iswitchb} package to read it. |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1099 @end defvar |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1100 |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1101 @defun read-command prompt &optional default |
6555 | 1102 This function reads the name of a command and returns it as a Lisp |
1103 symbol. The argument @var{prompt} is used as in | |
1104 @code{read-from-minibuffer}. Recall that a command is anything for | |
1105 which @code{commandp} returns @code{t}, and a command name is a symbol | |
1106 for which @code{commandp} returns @code{t}. @xref{Interactive Call}. | |
1107 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1108 The argument @var{default} specifies what to return if the user enters |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1109 null input. It can be a symbol or a string; if it is a string, |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1110 @code{read-command} interns it before returning it. If @var{default} is |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1111 @code{nil}, that means no default has been specified; then if the user |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1112 enters null input, the return value is @code{(intern "")}, that is, a |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1113 symbol whose name is an empty string. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1114 |
6555 | 1115 @example |
1116 (read-command "Command name? ") | |
1117 | |
1118 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1119 ;; @r{After evaluation of the preceding expression,} |
6555 | 1120 ;; @r{the following prompt appears with an empty minibuffer:} |
1121 @end group | |
1122 | |
1123 @group | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1124 ---------- Buffer: Minibuffer ---------- |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1125 Command name? |
6555 | 1126 ---------- Buffer: Minibuffer ---------- |
1127 @end group | |
1128 @end example | |
1129 | |
1130 @noindent | |
1131 If the user types @kbd{forward-c @key{RET}}, then this function returns | |
1132 @code{forward-char}. | |
1133 | |
16736
981e116b4ac6
Minor cleanups for overfull hboxes.
Richard M. Stallman <rms@gnu.org>
parents:
16238
diff
changeset
|
1134 The @code{read-command} function is a simplified interface to |
981e116b4ac6
Minor cleanups for overfull hboxes.
Richard M. Stallman <rms@gnu.org>
parents:
16238
diff
changeset
|
1135 @code{completing-read}. It uses the variable @code{obarray} so as to |
981e116b4ac6
Minor cleanups for overfull hboxes.
Richard M. Stallman <rms@gnu.org>
parents:
16238
diff
changeset
|
1136 complete in the set of extant Lisp symbols, and it uses the |
6555 | 1137 @code{commandp} predicate so as to accept only command names: |
1138 | |
1139 @cindex @code{commandp} example | |
1140 @example | |
1141 @group | |
1142 (read-command @var{prompt}) | |
1143 @equiv{} | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1144 (intern (completing-read @var{prompt} obarray |
6555 | 1145 'commandp t nil)) |
1146 @end group | |
1147 @end example | |
1148 @end defun | |
1149 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1150 @defun read-variable prompt &optional default |
56606
0c7bfbe7453f
(High-Level Completion): Add anchor for definition of `read-variable'.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56534
diff
changeset
|
1151 @anchor{Definition of read-variable} |
6555 | 1152 This function reads the name of a user variable and returns it as a |
1153 symbol. | |
1154 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1155 The argument @var{default} specifies what to return if the user enters |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1156 null input. It can be a symbol or a string; if it is a string, |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1157 @code{read-variable} interns it before returning it. If @var{default} |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1158 is @code{nil}, that means no default has been specified; then if the |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1159 user enters null input, the return value is @code{(intern "")}. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1160 |
6555 | 1161 @example |
1162 @group | |
1163 (read-variable "Variable name? ") | |
1164 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1165 ;; @r{After evaluation of the preceding expression,} |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1166 ;; @r{the following prompt appears,} |
6555 | 1167 ;; @r{with an empty minibuffer:} |
1168 @end group | |
1169 | |
1170 @group | |
1171 ---------- Buffer: Minibuffer ---------- | |
1172 Variable name? @point{} | |
1173 ---------- Buffer: Minibuffer ---------- | |
1174 @end group | |
1175 @end example | |
1176 | |
1177 @noindent | |
1178 If the user then types @kbd{fill-p @key{RET}}, @code{read-variable} | |
1179 returns @code{fill-prefix}. | |
1180 | |
1181 This function is similar to @code{read-command}, but uses the | |
1182 predicate @code{user-variable-p} instead of @code{commandp}: | |
1183 | |
1184 @cindex @code{user-variable-p} example | |
1185 @example | |
1186 @group | |
1187 (read-variable @var{prompt}) | |
1188 @equiv{} | |
1189 (intern | |
1190 (completing-read @var{prompt} obarray | |
1191 'user-variable-p t nil)) | |
1192 @end group | |
1193 @end example | |
1194 @end defun | |
1195 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1196 See also the functions @code{read-coding-system} and |
69016
16cf29541f7b
(High-Level Completion): Add xref to read-input-method-name.
Richard M. Stallman <rms@gnu.org>
parents:
68648
diff
changeset
|
1197 @code{read-non-nil-coding-system}, in @ref{User-Chosen Coding Systems}, |
16cf29541f7b
(High-Level Completion): Add xref to read-input-method-name.
Richard M. Stallman <rms@gnu.org>
parents:
68648
diff
changeset
|
1198 and @code{read-input-method-name}, in @ref{Input Methods}. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1199 |
6555 | 1200 @node Reading File Names |
1201 @subsection Reading File Names | |
1202 | |
1203 Here is another high-level completion function, designed for reading a | |
1204 file name. It provides special features including automatic insertion | |
1205 of the default directory. | |
1206 | |
52146
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1207 @defun read-file-name prompt &optional directory default existing initial predicate |
6555 | 1208 This function reads a file name in the minibuffer, prompting with |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1209 @var{prompt} and providing completion. |
6555 | 1210 |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1211 If @var{existing} is non-@code{nil}, then the user must specify the name |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1212 of an existing file; @key{RET} performs completion to make the name |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1213 valid if possible, and then refuses to exit if it is not valid. If the |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1214 value of @var{existing} is neither @code{nil} nor @code{t}, then |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1215 @key{RET} also requires confirmation after completion. If |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1216 @var{existing} is @code{nil}, then the name of a nonexistent file is |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1217 acceptable. |
6555 | 1218 |
67499
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1219 The function @code{read-file-name} uses |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1220 @code{minibuffer-local-filename-completion-map} as the keymap if |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1221 @var{existing} is @code{nil}, and uses |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1222 @code{minibuffer-local-must-match-filename-map} if @var{existing} is |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1223 non-@code{nil}. @xref{Completion Commands}. |
91703011b252
(Completion Commands): Add mention of read-file-name
Juri Linkov <juri@jurta.org>
parents:
67414
diff
changeset
|
1224 |
6555 | 1225 The argument @var{directory} specifies the directory to use for |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1226 completion of relative file names. It should be an absolute directory |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1227 name. If @code{insert-default-directory} is non-@code{nil}, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1228 @var{directory} is also inserted in the minibuffer as initial input. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1229 It defaults to the current buffer's value of @code{default-directory}. |
6555 | 1230 |
1231 @c Emacs 19 feature | |
52626 | 1232 If you specify @var{initial}, that is an initial file name to insert |
1233 in the buffer (after @var{directory}, if that is inserted). In this | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1234 case, point goes at the beginning of @var{initial}. The default for |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1235 @var{initial} is @code{nil}---don't insert any file name. To see what |
52626 | 1236 @var{initial} does, try the command @kbd{C-x C-v}. @strong{Please |
1237 note:} we recommend using @var{default} rather than @var{initial} in | |
1238 most cases. | |
6555 | 1239 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1240 If @var{default} is non-@code{nil}, then the function returns |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1241 @var{default} if the user exits the minibuffer with the same non-empty |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1242 contents that @code{read-file-name} inserted initially. The initial |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1243 minibuffer contents are always non-empty if |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1244 @code{insert-default-directory} is non-@code{nil}, as it is by |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1245 default. @var{default} is not checked for validity, regardless of the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1246 value of @var{existing}. However, if @var{existing} is |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1247 non-@code{nil}, the initial minibuffer contents should be a valid file |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1248 (or directory) name. Otherwise @code{read-file-name} attempts |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1249 completion if the user exits without any editing, and does not return |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1250 @var{default}. @var{default} is also available through the history |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1251 commands. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1252 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1253 If @var{default} is @code{nil}, @code{read-file-name} tries to find a |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1254 substitute default to use in its place, which it treats in exactly the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1255 same way as if it had been specified explicitly. If @var{default} is |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1256 @code{nil}, but @var{initial} is non-@code{nil}, then the default is |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1257 the absolute file name obtained from @var{directory} and |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1258 @var{initial}. If both @var{default} and @var{initial} are @code{nil} |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1259 and the buffer is visiting a file, @code{read-file-name} uses the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1260 absolute file name of that file as default. If the buffer is not |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1261 visiting a file, then there is no default. In that case, if the user |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1262 types @key{RET} without any editing, @code{read-file-name} simply |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1263 returns the pre-inserted contents of the minibuffer. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1264 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1265 If the user types @key{RET} in an empty minibuffer, this function |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1266 returns an empty string, regardless of the value of @var{existing}. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1267 This is, for instance, how the user can make the current buffer visit |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1268 no file using @code{M-x set-visited-file-name}. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1269 |
52146
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1270 If @var{predicate} is non-@code{nil}, it specifies a function of one |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1271 argument that decides which file names are acceptable completion |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1272 possibilities. A file name is an acceptable value if @var{predicate} |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1273 returns non-@code{nil} for it. |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1274 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1275 @code{read-file-name} does not automatically expand file names. You |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1276 must call @code{expand-file-name} yourself if an absolute file name is |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1277 required. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1278 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1279 Here is an example: |
6555 | 1280 |
1281 @example | |
1282 @group | |
1283 (read-file-name "The file is ") | |
1284 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1285 ;; @r{After evaluation of the preceding expression,} |
6555 | 1286 ;; @r{the following appears in the minibuffer:} |
1287 @end group | |
1288 | |
1289 @group | |
1290 ---------- Buffer: Minibuffer ---------- | |
1291 The file is /gp/gnu/elisp/@point{} | |
1292 ---------- Buffer: Minibuffer ---------- | |
1293 @end group | |
1294 @end example | |
1295 | |
1296 @noindent | |
1297 Typing @kbd{manual @key{TAB}} results in the following: | |
1298 | |
1299 @example | |
1300 @group | |
1301 ---------- Buffer: Minibuffer ---------- | |
1302 The file is /gp/gnu/elisp/manual.texi@point{} | |
1303 ---------- Buffer: Minibuffer ---------- | |
1304 @end group | |
1305 @end example | |
1306 | |
1307 @c Wordy to avoid overfull hbox in smallbook mode. | |
1308 @noindent | |
1309 If the user types @key{RET}, @code{read-file-name} returns the file name | |
1310 as the string @code{"/gp/gnu/elisp/manual.texi"}. | |
1311 @end defun | |
1312 | |
60783
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1313 @defvar read-file-name-function |
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1314 If non-@code{nil}, this should be a function that accepts the same |
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1315 arguments as @code{read-file-name}. When @code{read-file-name} is |
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1316 called, it calls this function with the supplied arguments instead of |
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1317 doing its usual work. |
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1318 @end defvar |
73b73eabbe62
(Reading File Names): Document read-file-name-function.
Richard M. Stallman <rms@gnu.org>
parents:
60449
diff
changeset
|
1319 |
60961
059ddef3ce4b
(Reading File Names): Document read-file-name-completion-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
60783
diff
changeset
|
1320 @defvar read-file-name-completion-ignore-case |
059ddef3ce4b
(Reading File Names): Document read-file-name-completion-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
60783
diff
changeset
|
1321 If this variable is non-@code{nil}, @code{read-file-name} ignores case |
059ddef3ce4b
(Reading File Names): Document read-file-name-completion-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
60783
diff
changeset
|
1322 when performing completion. |
059ddef3ce4b
(Reading File Names): Document read-file-name-completion-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
60783
diff
changeset
|
1323 @end defvar |
059ddef3ce4b
(Reading File Names): Document read-file-name-completion-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
60783
diff
changeset
|
1324 |
52146
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1325 @defun read-directory-name prompt &optional directory default existing initial |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1326 This function is like @code{read-file-name} but allows only directory |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1327 names as completion possibilities. |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1328 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1329 If @var{default} is @code{nil} and @var{initial} is non-@code{nil}, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1330 @code{read-directory-name} constructs a substitute default by |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1331 combining @var{directory} (or the current buffer's default directory |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1332 if @var{directory} is @code{nil}) and @var{initial}. If both |
62595
761fb32ee169
(Reading File Names): Update description of `read-directory-name'.
Luc Teirlinck <teirllm@auburn.edu>
parents:
60961
diff
changeset
|
1333 @var{default} and @var{initial} are @code{nil}, this function uses |
761fb32ee169
(Reading File Names): Update description of `read-directory-name'.
Luc Teirlinck <teirllm@auburn.edu>
parents:
60961
diff
changeset
|
1334 @var{directory} as substitute default, or the current buffer's default |
761fb32ee169
(Reading File Names): Update description of `read-directory-name'.
Luc Teirlinck <teirllm@auburn.edu>
parents:
60961
diff
changeset
|
1335 directory if @var{directory} is @code{nil}. |
52146
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1336 @end defun |
c78c690c99e8
(Reading File Names): read-file-name has new arg PREDICATE.
Richard M. Stallman <rms@gnu.org>
parents:
51989
diff
changeset
|
1337 |
6555 | 1338 @defopt insert-default-directory |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1339 This variable is used by @code{read-file-name}, and thus, indirectly, |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1340 by most commands reading file names. (This includes all commands that |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1341 use the code letters @samp{f} or @samp{F} in their interactive form. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1342 @xref{Interactive Codes,, Code Characters for interactive}.) Its |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1343 value controls whether @code{read-file-name} starts by placing the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1344 name of the default directory in the minibuffer, plus the initial file |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1345 name if any. If the value of this variable is @code{nil}, then |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1346 @code{read-file-name} does not place any initial input in the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1347 minibuffer (unless you specify initial input with the @var{initial} |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1348 argument). In that case, the default directory is still used for |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1349 completion of relative file names, but is not displayed. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1350 |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1351 If this variable is @code{nil} and the initial minibuffer contents are |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1352 empty, the user may have to explicitly fetch the next history element |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1353 to access a default value. If the variable is non-@code{nil}, the |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1354 initial minibuffer contents are always non-empty and the user can |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1355 always request a default value by immediately typing @key{RET} in an |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1356 unedited minibuffer. (See above.) |
6555 | 1357 |
1358 For example: | |
1359 | |
1360 @example | |
1361 @group | |
1362 ;; @r{Here the minibuffer starts out with the default directory.} | |
1363 (let ((insert-default-directory t)) | |
1364 (read-file-name "The file is ")) | |
1365 @end group | |
1366 | |
1367 @group | |
1368 ---------- Buffer: Minibuffer ---------- | |
1369 The file is ~lewis/manual/@point{} | |
1370 ---------- Buffer: Minibuffer ---------- | |
1371 @end group | |
1372 | |
1373 @group | |
1374 ;; @r{Here the minibuffer is empty and only the prompt} | |
1375 ;; @r{appears on its line.} | |
1376 (let ((insert-default-directory nil)) | |
1377 (read-file-name "The file is ")) | |
1378 @end group | |
1379 | |
1380 @group | |
1381 ---------- Buffer: Minibuffer ---------- | |
1382 The file is @point{} | |
1383 ---------- Buffer: Minibuffer ---------- | |
1384 @end group | |
1385 @end example | |
1386 @end defopt | |
1387 | |
1388 @node Programmed Completion | |
1389 @subsection Programmed Completion | |
1390 @cindex programmed completion | |
1391 | |
1392 Sometimes it is not possible to create an alist or an obarray | |
1393 containing all the intended possible completions. In such a case, you | |
1394 can supply your own function to compute the completion of a given string. | |
1395 This is called @dfn{programmed completion}. | |
1396 | |
1397 To use this feature, pass a symbol with a function definition as the | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1398 @var{collection} argument to @code{completing-read}. The function |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1399 @code{completing-read} arranges to pass your completion function along |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1400 to @code{try-completion} and @code{all-completions}, which will then let |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1401 your function do all the work. |
6555 | 1402 |
1403 The completion function should accept three arguments: | |
1404 | |
1405 @itemize @bullet | |
1406 @item | |
1407 The string to be completed. | |
1408 | |
1409 @item | |
1410 The predicate function to filter possible matches, or @code{nil} if | |
1411 none. Your function should call the predicate for each possible match, | |
1412 and ignore the possible match if the predicate returns @code{nil}. | |
1413 | |
1414 @item | |
1415 A flag specifying the type of operation. | |
1416 @end itemize | |
1417 | |
1418 There are three flag values for three operations: | |
1419 | |
1420 @itemize @bullet | |
1421 @item | |
1422 @code{nil} specifies @code{try-completion}. The completion function | |
1423 should return the completion of the specified string, or @code{t} if the | |
16157
1713fe640e41
Clarify value returned by programmed completion function.
Richard M. Stallman <rms@gnu.org>
parents:
15768
diff
changeset
|
1424 string is a unique and exact match already, or @code{nil} if the string |
1713fe640e41
Clarify value returned by programmed completion function.
Richard M. Stallman <rms@gnu.org>
parents:
15768
diff
changeset
|
1425 matches no possibility. |
1713fe640e41
Clarify value returned by programmed completion function.
Richard M. Stallman <rms@gnu.org>
parents:
15768
diff
changeset
|
1426 |
1713fe640e41
Clarify value returned by programmed completion function.
Richard M. Stallman <rms@gnu.org>
parents:
15768
diff
changeset
|
1427 If the string is an exact match for one possibility, but also matches |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1428 other longer possibilities, the function should return the string, not |
16157
1713fe640e41
Clarify value returned by programmed completion function.
Richard M. Stallman <rms@gnu.org>
parents:
15768
diff
changeset
|
1429 @code{t}. |
6555 | 1430 |
1431 @item | |
1432 @code{t} specifies @code{all-completions}. The completion function | |
1433 should return a list of all possible completions of the specified | |
1434 string. | |
1435 | |
1436 @item | |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
1437 @code{lambda} specifies @code{test-completion}. The completion |
6555 | 1438 function should return @code{t} if the specified string is an exact |
1439 match for some possibility; @code{nil} otherwise. | |
1440 @end itemize | |
1441 | |
1442 It would be consistent and clean for completion functions to allow | |
12098 | 1443 lambda expressions (lists that are functions) as well as function |
6555 | 1444 symbols as @var{collection}, but this is impossible. Lists as |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
1445 completion tables already have other meanings, and it would be |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
1446 unreliable to treat one differently just because it is also a possible |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
1447 function. So you must arrange for any function you wish to use for |
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
1448 completion to be encapsulated in a symbol. |
6555 | 1449 |
1450 Emacs uses programmed completion when completing file names. | |
1451 @xref{File Name Completion}. | |
1452 | |
51914
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1453 @defmac dynamic-completion-table function |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1454 This macro is a convenient way to write a function that can act as |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1455 programmed completion function. The argument @var{function} should be |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1456 a function that takes one argument, a string, and returns an alist of |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1457 possible completions of it. You can think of |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1458 @code{dynamic-completion-table} as a transducer between that interface |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1459 and the interface for programmed completion functions. |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1460 @end defmac |
9cd313749c97
(Basic Completion): Add lazy-completion-table.
Richard M. Stallman <rms@gnu.org>
parents:
51703
diff
changeset
|
1461 |
6555 | 1462 @node Yes-or-No Queries |
1463 @section Yes-or-No Queries | |
1464 @cindex asking the user questions | |
1465 @cindex querying the user | |
1466 @cindex yes-or-no questions | |
1467 | |
1468 This section describes functions used to ask the user a yes-or-no | |
1469 question. The function @code{y-or-n-p} can be answered with a single | |
1470 character; it is useful for questions where an inadvertent wrong answer | |
1471 will not have serious consequences. @code{yes-or-no-p} is suitable for | |
1472 more momentous questions, since it requires three or four characters to | |
1473 answer. | |
1474 | |
7337
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1475 If either of these functions is called in a command that was invoked |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1476 using the mouse---more precisely, if @code{last-nonmenu-event} |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1477 (@pxref{Command Loop Info}) is either @code{nil} or a list---then it |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1478 uses a dialog box or pop-up menu to ask the question. Otherwise, it |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1479 uses keyboard input. You can force use of the mouse or use of keyboard |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1480 input by binding @code{last-nonmenu-event} to a suitable value around |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1481 the call. |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1482 |
6555 | 1483 Strictly speaking, @code{yes-or-no-p} uses the minibuffer and |
1484 @code{y-or-n-p} does not; but it seems best to describe them together. | |
1485 | |
1486 @defun y-or-n-p prompt | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1487 This function asks the user a question, expecting input in the echo |
6555 | 1488 area. It returns @code{t} if the user types @kbd{y}, @code{nil} if the |
1489 user types @kbd{n}. This function also accepts @key{SPC} to mean yes | |
1490 and @key{DEL} to mean no. It accepts @kbd{C-]} to mean ``quit'', like | |
1491 @kbd{C-g}, because the question might look like a minibuffer and for | |
1492 that reason the user might try to use @kbd{C-]} to get out. The answer | |
1493 is a single character, with no @key{RET} needed to terminate it. Upper | |
1494 and lower case are equivalent. | |
1495 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1496 ``Asking the question'' means printing @var{prompt} in the echo area, |
6555 | 1497 followed by the string @w{@samp{(y or n) }}. If the input is not one of |
1498 the expected answers (@kbd{y}, @kbd{n}, @kbd{@key{SPC}}, | |
1499 @kbd{@key{DEL}}, or something that quits), the function responds | |
1500 @samp{Please answer y or n.}, and repeats the request. | |
1501 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1502 This function does not actually use the minibuffer, since it does not |
6555 | 1503 allow editing of the answer. It actually uses the echo area (@pxref{The |
1504 Echo Area}), which uses the same screen space as the minibuffer. The | |
1505 cursor moves to the echo area while the question is being asked. | |
1506 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1507 The answers and their meanings, even @samp{y} and @samp{n}, are not |
6555 | 1508 hardwired. The keymap @code{query-replace-map} specifies them. |
1509 @xref{Search and Replace}. | |
1510 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1511 In the following example, the user first types @kbd{q}, which is |
6555 | 1512 invalid. At the next prompt the user types @kbd{y}. |
1513 | |
1514 @smallexample | |
1515 @group | |
1516 (y-or-n-p "Do you need a lift? ") | |
1517 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1518 ;; @r{After evaluation of the preceding expression,} |
6555 | 1519 ;; @r{the following prompt appears in the echo area:} |
1520 @end group | |
1521 | |
1522 @group | |
1523 ---------- Echo area ---------- | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1524 Do you need a lift? (y or n) |
6555 | 1525 ---------- Echo area ---------- |
1526 @end group | |
1527 | |
1528 ;; @r{If the user then types @kbd{q}, the following appears:} | |
1529 | |
1530 @group | |
1531 ---------- Echo area ---------- | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1532 Please answer y or n. Do you need a lift? (y or n) |
6555 | 1533 ---------- Echo area ---------- |
1534 @end group | |
1535 | |
1536 ;; @r{When the user types a valid answer,} | |
1537 ;; @r{it is displayed after the question:} | |
1538 | |
1539 @group | |
1540 ---------- Echo area ---------- | |
1541 Do you need a lift? (y or n) y | |
1542 ---------- Echo area ---------- | |
1543 @end group | |
1544 @end smallexample | |
1545 | |
1546 @noindent | |
1547 We show successive lines of echo area messages, but only one actually | |
1548 appears on the screen at a time. | |
1549 @end defun | |
1550 | |
15768
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1551 @defun y-or-n-p-with-timeout prompt seconds default-value |
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1552 Like @code{y-or-n-p}, except that if the user fails to answer within |
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1553 @var{seconds} seconds, this function stops waiting and returns |
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1554 @var{default-value}. It works by setting up a timer; see @ref{Timers}. |
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1555 The argument @var{seconds} may be an integer or a floating point number. |
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1556 @end defun |
b913a75fddee
Add y-or-n-p-with-timeout.
Richard M. Stallman <rms@gnu.org>
parents:
13319
diff
changeset
|
1557 |
6555 | 1558 @defun yes-or-no-p prompt |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1559 This function asks the user a question, expecting input in the |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1560 minibuffer. It returns @code{t} if the user enters @samp{yes}, |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1561 @code{nil} if the user types @samp{no}. The user must type @key{RET} to |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1562 finalize the response. Upper and lower case are equivalent. |
6555 | 1563 |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1564 @code{yes-or-no-p} starts by displaying @var{prompt} in the echo area, |
6555 | 1565 followed by @w{@samp{(yes or no) }}. The user must type one of the |
1566 expected responses; otherwise, the function responds @samp{Please answer | |
1567 yes or no.}, waits about two seconds and repeats the request. | |
1568 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1569 @code{yes-or-no-p} requires more work from the user than |
6555 | 1570 @code{y-or-n-p} and is appropriate for more crucial decisions. |
1571 | |
1572 Here is an example: | |
1573 | |
1574 @smallexample | |
1575 @group | |
1576 (yes-or-no-p "Do you really want to remove everything? ") | |
1577 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1578 ;; @r{After evaluation of the preceding expression,} |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1579 ;; @r{the following prompt appears,} |
6555 | 1580 ;; @r{with an empty minibuffer:} |
1581 @end group | |
1582 | |
1583 @group | |
1584 ---------- Buffer: minibuffer ---------- | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48730
diff
changeset
|
1585 Do you really want to remove everything? (yes or no) |
6555 | 1586 ---------- Buffer: minibuffer ---------- |
1587 @end group | |
1588 @end smallexample | |
1589 | |
1590 @noindent | |
1591 If the user first types @kbd{y @key{RET}}, which is invalid because this | |
1592 function demands the entire word @samp{yes}, it responds by displaying | |
1593 these prompts, with a brief pause between them: | |
1594 | |
1595 @smallexample | |
1596 @group | |
1597 ---------- Buffer: minibuffer ---------- | |
1598 Please answer yes or no. | |
1599 Do you really want to remove everything? (yes or no) | |
1600 ---------- Buffer: minibuffer ---------- | |
1601 @end group | |
1602 @end smallexample | |
1603 @end defun | |
1604 | |
1605 @node Multiple Queries | |
1606 @section Asking Multiple Y-or-N Questions | |
1607 | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1608 When you have a series of similar questions to ask, such as ``Do you |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1609 want to save this buffer'' for each buffer in turn, you should use |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1610 @code{map-y-or-n-p} to ask the collection of questions, rather than |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1611 asking each question individually. This gives the user certain |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1612 convenient facilities such as the ability to answer the whole series at |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1613 once. |
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1614 |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1615 @defun map-y-or-n-p prompter actor list &optional help action-alist no-cursor-in-echo-area |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1616 This function asks the user a series of questions, reading a |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16736
diff
changeset
|
1617 single-character answer in the echo area for each one. |
6555 | 1618 |
1619 The value of @var{list} specifies the objects to ask questions about. | |
1620 It should be either a list of objects or a generator function. If it is | |
1621 a function, it should expect no arguments, and should return either the | |
1622 next object to ask about, or @code{nil} meaning stop asking questions. | |
1623 | |
1624 The argument @var{prompter} specifies how to ask each question. If | |
1625 @var{prompter} is a string, the question text is computed like this: | |
1626 | |
1627 @example | |
1628 (format @var{prompter} @var{object}) | |
1629 @end example | |
1630 | |
1631 @noindent | |
1632 where @var{object} is the next object to ask about (as obtained from | |
1633 @var{list}). | |
1634 | |
1635 If not a string, @var{prompter} should be a function of one argument | |
12226 | 1636 (the next object to ask about) and should return the question text. If |
1637 the value is a string, that is the question to ask the user. The | |
1638 function can also return @code{t} meaning do act on this object (and | |
1639 don't ask the user), or @code{nil} meaning ignore this object (and don't | |
1640 ask the user). | |
6555 | 1641 |
1642 The argument @var{actor} says how to act on the answers that the user | |
1643 gives. It should be a function of one argument, and it is called with | |
1644 each object that the user says yes for. Its argument is always an | |
1645 object obtained from @var{list}. | |
1646 | |
1647 If the argument @var{help} is given, it should be a list of this form: | |
1648 | |
1649 @example | |
1650 (@var{singular} @var{plural} @var{action}) | |
1651 @end example | |
1652 | |
1653 @noindent | |
1654 where @var{singular} is a string containing a singular noun that | |
1655 describes the objects conceptually being acted on, @var{plural} is the | |
1656 corresponding plural noun, and @var{action} is a transitive verb | |
1657 describing what @var{actor} does. | |
1658 | |
1659 If you don't specify @var{help}, the default is @code{("object" | |
1660 "objects" "act on")}. | |
1661 | |
1662 Each time a question is asked, the user may enter @kbd{y}, @kbd{Y}, or | |
1663 @key{SPC} to act on that object; @kbd{n}, @kbd{N}, or @key{DEL} to skip | |
1664 that object; @kbd{!} to act on all following objects; @key{ESC} or | |
1665 @kbd{q} to exit (skip all following objects); @kbd{.} (period) to act on | |
1666 the current object and then exit; or @kbd{C-h} to get help. These are | |
1667 the same answers that @code{query-replace} accepts. The keymap | |
1668 @code{query-replace-map} defines their meaning for @code{map-y-or-n-p} | |
1669 as well as for @code{query-replace}; see @ref{Search and Replace}. | |
1670 | |
1671 You can use @var{action-alist} to specify additional possible answers | |
1672 and what they mean. It is an alist of elements of the form | |
1673 @code{(@var{char} @var{function} @var{help})}, each of which defines one | |
1674 additional answer. In this element, @var{char} is a character (the | |
1675 answer); @var{function} is a function of one argument (an object from | |
1676 @var{list}); @var{help} is a string. | |
1677 | |
1678 When the user responds with @var{char}, @code{map-y-or-n-p} calls | |
1679 @var{function}. If it returns non-@code{nil}, the object is considered | |
1680 ``acted upon'', and @code{map-y-or-n-p} advances to the next object in | |
1681 @var{list}. If it returns @code{nil}, the prompt is repeated for the | |
1682 same object. | |
1683 | |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1684 Normally, @code{map-y-or-n-p} binds @code{cursor-in-echo-area} while |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1685 prompting. But if @var{no-cursor-in-echo-area} is non-@code{nil}, it |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1686 does not do that. |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1687 |
7337
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1688 If @code{map-y-or-n-p} is called in a command that was invoked using the |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1689 mouse---more precisely, if @code{last-nonmenu-event} (@pxref{Command |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1690 Loop Info}) is either @code{nil} or a list---then it uses a dialog box |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1691 or pop-up menu to ask the question. In this case, it does not use |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1692 keyboard input or the echo area. You can force use of the mouse or use |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1693 of keyboard input by binding @code{last-nonmenu-event} to a suitable |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1694 value around the call. |
cd57cd335fff
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7221
diff
changeset
|
1695 |
6555 | 1696 The return value of @code{map-y-or-n-p} is the number of objects acted on. |
1697 @end defun | |
1698 | |
23147 | 1699 @node Reading a Password |
1700 @section Reading a Password | |
1701 @cindex passwords, reading | |
1702 | |
1703 To read a password to pass to another program, you can use the | |
1704 function @code{read-passwd}. | |
1705 | |
1706 @defun read-passwd prompt &optional confirm default | |
1707 This function reads a password, prompting with @var{prompt}. It does | |
1708 not echo the password as the user types it; instead, it echoes @samp{.} | |
1709 for each character in the password. | |
1710 | |
1711 The optional argument @var{confirm}, if non-@code{nil}, says to read the | |
1712 password twice and insist it must be the same both times. If it isn't | |
1713 the same, the user has to type it over and over until the last two | |
1714 times match. | |
1715 | |
1716 The optional argument @var{default} specifies the default password to | |
1717 return if the user enters empty input. If @var{default} is @code{nil}, | |
1718 then @code{read-passwd} returns the null string in that case. | |
1719 @end defun | |
1720 | |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1721 @node Minibuffer Commands |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1722 @section Minibuffer Commands |
6555 | 1723 |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1724 This section describes some commands meant for use in the |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1725 minibuffer. |
6555 | 1726 |
1727 @deffn Command exit-minibuffer | |
1728 This command exits the active minibuffer. It is normally bound to | |
1729 keys in minibuffer local keymaps. | |
1730 @end deffn | |
1731 | |
1732 @deffn Command self-insert-and-exit | |
1733 This command exits the active minibuffer after inserting the last | |
1734 character typed on the keyboard (found in @code{last-command-char}; | |
1735 @pxref{Command Loop Info}). | |
1736 @end deffn | |
1737 | |
1738 @deffn Command previous-history-element n | |
1739 This command replaces the minibuffer contents with the value of the | |
1740 @var{n}th previous (older) history element. | |
1741 @end deffn | |
1742 | |
1743 @deffn Command next-history-element n | |
1744 This command replaces the minibuffer contents with the value of the | |
1745 @var{n}th more recent history element. | |
1746 @end deffn | |
1747 | |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1748 @deffn Command previous-matching-history-element pattern n |
6555 | 1749 This command replaces the minibuffer contents with the value of the |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1750 @var{n}th previous (older) history element that matches @var{pattern} (a |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1751 regular expression). |
6555 | 1752 @end deffn |
1753 | |
26696
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1754 @deffn Command next-matching-history-element pattern n |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1755 This command replaces the minibuffer contents with the value of the |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1756 @var{n}th next (newer) history element that matches @var{pattern} (a |
ef5e7bbe6f19
Current version from /gd/gnu/elisp.
Dave Love <fx@gnu.org>
parents:
25751
diff
changeset
|
1757 regular expression). |
6555 | 1758 @end deffn |
1759 | |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1760 @node Minibuffer Windows |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1761 @section Minibuffer Windows |
39531
35c1673ff6ab
(Minibuffer Misc): Add entries for `minibuffer-contents',
Miles Bader <miles@gnu.org>
parents:
38159
diff
changeset
|
1762 |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1763 These functions access and select minibuffer windows |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1764 and test whether they are active. |
51989
13ba58726a52
(Basic Completion): Describe test-completion.
Richard M. Stallman <rms@gnu.org>
parents:
51914
diff
changeset
|
1765 |
12067 | 1766 @defun active-minibuffer-window |
1767 This function returns the currently active minibuffer window, or | |
1768 @code{nil} if none is currently active. | |
1769 @end defun | |
1770 | |
6555 | 1771 @defun minibuffer-window &optional frame |
56534
3d8fa211fc46
(Minibuffer Misc): Add anchor.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56485
diff
changeset
|
1772 @anchor{Definition of minibuffer-window} |
12067 | 1773 This function returns the minibuffer window used for frame @var{frame}. |
1774 If @var{frame} is @code{nil}, that stands for the current frame. Note | |
1775 that the minibuffer window used by a frame need not be part of that | |
1776 frame---a frame that has no minibuffer of its own necessarily uses some | |
1777 other frame's minibuffer window. | |
6555 | 1778 @end defun |
1779 | |
53429
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1780 @defun set-minibuffer-window window |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1781 This function specifies @var{window} as the minibuffer window to use. |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1782 This affects where the minibuffer is displayed if you put text in it |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1783 without invoking the usual minibuffer commands. It has no effect on |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1784 the usual minibuffer input functions because they all start by |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1785 choosing the minibuffer window according to the current frame. |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1786 @end defun |
246f74971d9a
(Minibuffer Misc): Add set-minibuffer-window.
Richard M. Stallman <rms@gnu.org>
parents:
52626
diff
changeset
|
1787 |
6555 | 1788 @c Emacs 19 feature |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1789 @defun window-minibuffer-p &optional window |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1790 This function returns non-@code{nil} if @var{window} is a minibuffer |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1791 window. |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1792 @var{window} defaults to the selected window. |
6555 | 1793 @end defun |
1794 | |
1795 It is not correct to determine whether a given window is a minibuffer by | |
1796 comparing it with the result of @code{(minibuffer-window)}, because | |
1797 there can be more than one minibuffer window if there is more than one | |
1798 frame. | |
1799 | |
1800 @defun minibuffer-window-active-p window | |
1801 This function returns non-@code{nil} if @var{window}, assumed to be | |
1802 a minibuffer window, is currently active. | |
1803 @end defun | |
1804 | |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1805 @node Minibuffer Contents |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1806 @section Minibuffer Contents |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1807 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1808 These functions access the minibuffer prompt and contents. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1809 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1810 @defun minibuffer-prompt |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1811 This function returns the prompt string of the currently active |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1812 minibuffer. If no minibuffer is active, it returns @code{nil}. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1813 @end defun |
6555 | 1814 |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1815 @defun minibuffer-prompt-end |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1816 @tindex minibuffer-prompt-end |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1817 This function returns the current |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1818 position of the end of the minibuffer prompt, if a minibuffer is |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1819 current. Otherwise, it returns the minimum valid buffer position. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1820 @end defun |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1821 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1822 @defun minibuffer-prompt-width |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1823 This function returns the current display-width of the minibuffer |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1824 prompt, if a minibuffer is current. Otherwise, it returns zero. |
52485
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1825 @end defun |
7fc901c75a7d
(Intro to Minibuffers): Explain that the minibuffer
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1826 |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1827 @defun minibuffer-contents |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1828 @tindex minibuffer-contents |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1829 This function returns the editable |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1830 contents of the minibuffer (that is, everything except the prompt) as |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1831 a string, if a minibuffer is current. Otherwise, it returns the |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1832 entire contents of the current buffer. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1833 @end defun |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1834 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1835 @defun minibuffer-contents-no-properties |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1836 @tindex minibuffer-contents-no-properties |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1837 This is like @code{minibuffer-contents}, except that it does not copy text |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1838 properties, just the characters themselves. @xref{Text Properties}. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1839 @end defun |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1840 |
67619
8ae5d2f218aa
(Minibuffer Contents): Add minibuffer-completion-contents.
Juri Linkov <juri@jurta.org>
parents:
67499
diff
changeset
|
1841 @defun minibuffer-completion-contents |
8ae5d2f218aa
(Minibuffer Contents): Add minibuffer-completion-contents.
Juri Linkov <juri@jurta.org>
parents:
67499
diff
changeset
|
1842 @tindex minibuffer-completion-contents |
67629
f488d808c052
(Minibuffer Contents): Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents:
67619
diff
changeset
|
1843 This is like @code{minibuffer-contents}, except that it returns only |
f488d808c052
(Minibuffer Contents): Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents:
67619
diff
changeset
|
1844 the contents before point. That is the part that completion commands |
f488d808c052
(Minibuffer Contents): Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents:
67619
diff
changeset
|
1845 operate on. @xref{Minibuffer Completion}. |
67619
8ae5d2f218aa
(Minibuffer Contents): Add minibuffer-completion-contents.
Juri Linkov <juri@jurta.org>
parents:
67499
diff
changeset
|
1846 @end defun |
8ae5d2f218aa
(Minibuffer Contents): Add minibuffer-completion-contents.
Juri Linkov <juri@jurta.org>
parents:
67499
diff
changeset
|
1847 |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1848 @defun delete-minibuffer-contents |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1849 @tindex delete-minibuffer-contents |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1850 This function erases the editable contents of the minibuffer (that is, |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1851 everything except the prompt), if a minibuffer is current. Otherwise, |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1852 it erases the entire current buffer. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1853 @end defun |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1854 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1855 @node Recursive Mini |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1856 @section Recursive Minibuffers |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1857 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1858 These functions and variables deal with recursive minibuffers |
6555 | 1859 (@pxref{Recursive Editing}): |
1860 | |
1861 @defun minibuffer-depth | |
1862 This function returns the current depth of activations of the | |
1863 minibuffer, a nonnegative integer. If no minibuffers are active, it | |
1864 returns zero. | |
1865 @end defun | |
1866 | |
1867 @defopt enable-recursive-minibuffers | |
1868 If this variable is non-@code{nil}, you can invoke commands (such as | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1869 @code{find-file}) that use minibuffers even while the minibuffer window |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1870 is active. Such invocation produces a recursive editing level for a new |
6555 | 1871 minibuffer. The outer-level minibuffer is invisible while you are |
1872 editing the inner one. | |
1873 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1874 If this variable is @code{nil}, you cannot invoke minibuffer |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1875 commands when the minibuffer window is active, not even if you switch to |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1876 another window to do it. |
6555 | 1877 @end defopt |
1878 | |
1879 @c Emacs 19 feature | |
1880 If a command name has a property @code{enable-recursive-minibuffers} | |
7221
a2c7acc3be9c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6555
diff
changeset
|
1881 that is non-@code{nil}, then the command can use the minibuffer to read |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1882 arguments even if it is invoked from the minibuffer. A command can |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1883 also achieve this by binding @code{enable-recursive-minibuffers} |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1884 to @code{t} in the interactive declaration (@pxref{Using Interactive}). |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1885 The minibuffer command @code{next-matching-history-element} (normally |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1886 @kbd{M-s} in the minibuffer) does the latter. |
50603
86ea12469954
(Minibuffer Misc): Document fn minibuffer-message.
Richard M. Stallman <rms@gnu.org>
parents:
49600
diff
changeset
|
1887 |
64843
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1888 @node Minibuffer Misc |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1889 @section Minibuffer Miscellany |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1890 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1891 @defun minibufferp &optional buffer-or-name |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1892 This function returns non-@code{nil} if @var{buffer-or-name} is a |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1893 minibuffer. If @var{buffer-or-name} is omitted, it tests the current |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1894 buffer. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1895 @end defun |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1896 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1897 @defvar minibuffer-setup-hook |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1898 This is a normal hook that is run whenever the minibuffer is entered. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1899 @xref{Hooks}. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1900 @end defvar |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1901 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1902 @defvar minibuffer-exit-hook |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1903 This is a normal hook that is run whenever the minibuffer is exited. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1904 @xref{Hooks}. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1905 @end defvar |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1906 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1907 @defvar minibuffer-help-form |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1908 @anchor{Definition of minibuffer-help-form} |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1909 The current value of this variable is used to rebind @code{help-form} |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1910 locally inside the minibuffer (@pxref{Help Functions}). |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1911 @end defvar |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1912 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1913 @defvar minibuffer-scroll-window |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1914 @anchor{Definition of minibuffer-scroll-window} |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1915 If the value of this variable is non-@code{nil}, it should be a window |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1916 object. When the function @code{scroll-other-window} is called in the |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1917 minibuffer, it scrolls this window. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1918 @end defvar |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1919 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1920 @defun minibuffer-selected-window |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1921 This function returns the window which was selected when the |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1922 minibuffer was entered. If selected window is not a minibuffer |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1923 window, it returns @code{nil}. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1924 @end defun |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1925 |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1926 @defopt max-mini-window-height |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1927 This variable specifies the maximum height for resizing minibuffer |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1928 windows. If a float, it specifies a fraction of the height of the |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1929 frame. If an integer, it specifies a number of lines. |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1930 @end defopt |
6c4d2fa924e4
(Minibuffer Misc): Node split up.
Richard M. Stallman <rms@gnu.org>
parents:
63582
diff
changeset
|
1931 |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1932 @defun minibuffer-message string |
50603
86ea12469954
(Minibuffer Misc): Document fn minibuffer-message.
Richard M. Stallman <rms@gnu.org>
parents:
49600
diff
changeset
|
1933 This function displays @var{string} temporarily at the end of the |
53801
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1934 minibuffer text, for two seconds, or until the next input event |
7fda9e6236d5
(Text from Minibuffer): Various corrections and clarifications.
Luc Teirlinck <teirllm@auburn.edu>
parents:
53429
diff
changeset
|
1935 arrives, whichever comes first. |
50603
86ea12469954
(Minibuffer Misc): Document fn minibuffer-message.
Richard M. Stallman <rms@gnu.org>
parents:
49600
diff
changeset
|
1936 @end defun |
52401 | 1937 |
1938 @ignore | |
1939 arch-tag: bba7f945-9078-477f-a2ce-18818a6e1218 | |
1940 @end ignore |