0
|
1 \input texinfo @comment -*-Texinfo-*-
|
|
2 @setfilename ../info/vm.info
|
|
3 @settitle VM User's Manual
|
|
4 @iftex
|
|
5 @finalout
|
|
6 @end iftex
|
|
7 @c @setchapternewpage odd % For book style double sided manual.
|
|
8 @c @smallbook
|
|
9 @tex
|
|
10 \overfullrule=0pt
|
|
11 %\global\baselineskip 30pt % For printing in double spaces
|
|
12 @end tex
|
|
13 @ifinfo
|
|
14 This file documents the VM mail reader.
|
|
15
|
|
16 Copyright (C) 1989, 1991 Kyle E. Jones
|
|
17
|
|
18 Permission is granted to make and distribute verbatim copies of
|
|
19 this manual provided the copyright notice and this permission notice
|
|
20 are preserved on all copies.
|
|
21
|
|
22 @ignore
|
|
23 Permission is granted to process this file through Tex and print the
|
|
24 results, provided the printed document carries copying permission
|
|
25 notice identical to this one except for the removal of this paragraph
|
|
26 (this paragraph not being relevant to the printed manual).
|
|
27
|
|
28 @end ignore
|
|
29 @end ifinfo
|
|
30 @c
|
|
31 @titlepage
|
|
32 @sp 6
|
|
33 @center @titlefont{VM User's Manual}
|
|
34 @sp 4
|
|
35 @center Second Edition, VM Version 5
|
|
36 @sp 1
|
|
37 @center June 1991
|
|
38 @sp 5
|
|
39 @center Kyle E. Jones
|
|
40 @center @t{kyle@@uunet.uu.net}
|
|
41 @page
|
|
42 @vskip 0pt plus 1filll
|
|
43 Copyright @copyright{} 1989, 1991 Kyle E. Jones
|
|
44
|
|
45 Permission is granted to make and distribute verbatim copies of
|
|
46 this manual provided the copyright notice and this permission notice
|
|
47 are preserved on all copies.
|
|
48
|
|
49 @end titlepage
|
|
50 @page
|
|
51 @ifinfo
|
|
52 @node Top, Introduction, (dir), (dir)
|
|
53
|
|
54 This manual documents the VM mail reader, a Lisp program which runs as a
|
|
55 subsystem under Emacs. The manual is divided into the following
|
|
56 chapters.
|
|
57
|
|
58 @menu
|
|
59 * Introduction:: Overview of the VM interface.
|
|
60 * Starting Up:: What happens when your start VM.
|
|
61 * Selecting Messages:: How to select messages for reading.
|
|
62 * Reading Messages:: Previewing and paging through a message.
|
|
63 * Sending Messages:: How to send messages from within VM.
|
|
64 * Saving Messages:: How to save messages.
|
|
65 * Deleting Messages:: How to delete, undelete and expunge messages
|
|
66 * Editing Messages:: How to alter the text and headers of a message.
|
|
67 * Message Marks:: Running VM commands on arbitrary subsets of messages.
|
|
68 * Undoing:: How to undo changes to message attributes.
|
|
69 * Grouping Messages:: How to make VM present similar message together.
|
|
70 * Reading Digests:: How to read digests under VM.
|
|
71 * Summaries:: How to view and customize the summary of a folder.
|
|
72 * Miscellaneous:: Various customization variables undescribed elsewhere.
|
|
73 * License:: The GNU General Public License
|
|
74
|
|
75 Indices:
|
|
76
|
|
77 * Key Index:: Menus of command keys and their references.
|
|
78 * Command Index:: Menus of commands and their references.
|
|
79 * Variable Index:: Menus of variables and their references.
|
|
80 @end menu
|
|
81 @end ifinfo
|
|
82
|
|
83 @node License, , , Top
|
|
84 @unnumbered License
|
|
85
|
|
86 @unnumbered GNU GENERAL PUBLIC LICENSE
|
|
87 @center Version 1, February 1989
|
|
88 @cindex license to copy Emacs
|
|
89 @cindex General Public License
|
|
90
|
|
91 @display
|
|
92 Copyright @copyright{} 1989 Free Software Foundation, Inc.
|
|
93 675 Mass Ave, Cambridge, MA 02139, USA
|
|
94
|
|
95 Everyone is permitted to copy and distribute verbatim copies
|
|
96 of this license document, but changing it is not allowed.
|
|
97 @end display
|
|
98
|
|
99 @unnumberedsec Preamble
|
|
100
|
|
101 The license agreements of most software companies try to keep users
|
|
102 at the mercy of those companies. By contrast, our General Public
|
|
103 License is intended to guarantee your freedom to share and change free
|
|
104 software---to make sure the software is free for all its users. The
|
|
105 General Public License applies to the Free Software Foundation's
|
|
106 software and to any other program whose authors commit to using it.
|
|
107 You can use it for your programs, too.
|
|
108
|
|
109 When we speak of free software, we are referring to freedom, not
|
|
110 price. Specifically, the General Public License is designed to make
|
|
111 sure that you have the freedom to give away or sell copies of free
|
|
112 software, that you receive source code or can get it if you want it,
|
|
113 that you can change the software or use pieces of it in new free
|
|
114 programs; and that you know you can do these things.
|
|
115
|
|
116 To protect your rights, we need to make restrictions that forbid
|
|
117 anyone to deny you these rights or to ask you to surrender the rights.
|
|
118 These restrictions translate to certain responsibilities for you if you
|
|
119 distribute copies of the software, or if you modify it.
|
|
120
|
|
121 For example, if you distribute copies of a such a program, whether
|
|
122 gratis or for a fee, you must give the recipients all the rights that
|
|
123 you have. You must make sure that they, too, receive or can get the
|
|
124 source code. And you must tell them their rights.
|
|
125
|
|
126 We protect your rights with two steps: (1) copyright the software, and
|
|
127 (2) offer you this license which gives you legal permission to copy,
|
|
128 distribute and/or modify the software.
|
|
129
|
|
130 Also, for each author's protection and ours, we want to make certain
|
|
131 that everyone understands that there is no warranty for this free
|
|
132 software. If the software is modified by someone else and passed on, we
|
|
133 want its recipients to know that what they have is not the original, so
|
|
134 that any problems introduced by others will not reflect on the original
|
|
135 authors' reputations.
|
|
136
|
|
137 The precise terms and conditions for copying, distribution and
|
|
138 modification follow.
|
|
139
|
|
140 @iftex
|
|
141 @unnumberedsec TERMS AND CONDITIONS
|
|
142 @end iftex
|
|
143 @ifinfo
|
|
144 @center TERMS AND CONDITIONS
|
|
145 @end ifinfo
|
|
146
|
|
147 @enumerate
|
|
148 @item
|
|
149 This License Agreement applies to any program or other work which
|
|
150 contains a notice placed by the copyright holder saying it may be
|
|
151 distributed under the terms of this General Public License. The
|
|
152 ``Program'', below, refers to any such program or work, and a ``work based
|
|
153 on the Program'' means either the Program or any work containing the
|
|
154 Program or a portion of it, either verbatim or with modifications. Each
|
|
155 licensee is addressed as ``you''.
|
|
156
|
|
157 @item
|
|
158 @cindex Distribution
|
|
159 You may copy and distribute verbatim copies of the Program's source
|
|
160 code as you receive it, in any medium, provided that you conspicuously and
|
|
161 appropriately publish on each copy an appropriate copyright notice and
|
|
162 disclaimer of warranty; keep intact all the notices that refer to this
|
|
163 General Public License and to the absence of any warranty; and give any
|
|
164 other recipients of the Program a copy of this General Public License
|
|
165 along with the Program. You may charge a fee for the physical act of
|
|
166 transferring a copy.
|
|
167
|
|
168 @item
|
|
169 You may modify your copy or copies of the Program or any portion of
|
|
170 it, and copy and distribute such modifications under the terms of Paragraph
|
|
171 1 above, provided that you also do the following:
|
|
172
|
|
173 @itemize @bullet
|
|
174 @item
|
|
175 cause the modified files to carry prominent notices stating that
|
|
176 you changed the files and the date of any change; and
|
|
177
|
|
178 @item
|
|
179 cause the whole of any work that you distribute or publish, that
|
|
180 in whole or in part contains the Program or any part thereof, either
|
|
181 with or without modifications, to be licensed at no charge to all
|
|
182 third parties under the terms of this General Public License (except
|
|
183 that you may choose to grant warranty protection to some or all
|
|
184 third parties, at your option).
|
|
185
|
|
186 @item
|
|
187 If the modified program normally reads commands interactively when
|
|
188 run, you must cause it, when started running for such interactive use
|
|
189 in the simplest and most usual way, to print or display an
|
|
190 announcement including an appropriate copyright notice and a notice
|
|
191 that there is no warranty (or else, saying that you provide a
|
|
192 warranty) and that users may redistribute the program under these
|
|
193 conditions, and telling the user how to view a copy of this General
|
|
194 Public License.
|
|
195
|
|
196 @item
|
|
197 You may charge a fee for the physical act of transferring a
|
|
198 copy, and you may at your option offer warranty protection in
|
|
199 exchange for a fee.
|
|
200 @end itemize
|
|
201
|
|
202 Mere aggregation of another independent work with the Program (or its
|
|
203 derivative) on a volume of a storage or distribution medium does not bring
|
|
204 the other work under the scope of these terms.
|
|
205
|
|
206 @item
|
|
207 You may copy and distribute the Program (or a portion or derivative of
|
|
208 it, under Paragraph 2) in object code or executable form under the terms of
|
|
209 Paragraphs 1 and 2 above provided that you also do one of the following:
|
|
210
|
|
211 @itemize @bullet
|
|
212 @item
|
|
213 accompany it with the complete corresponding machine-readable
|
|
214 source code, which must be distributed under the terms of
|
|
215 Paragraphs 1 and 2 above; or,
|
|
216
|
|
217 @item
|
|
218 accompany it with a written offer, valid for at least three
|
|
219 years, to give any third party free (except for a nominal charge
|
|
220 for the cost of distribution) a complete machine-readable copy of the
|
|
221 corresponding source code, to be distributed under the terms of
|
|
222 Paragraphs 1 and 2 above; or,
|
|
223
|
|
224 @item
|
|
225 accompany it with the information you received as to where the
|
|
226 corresponding source code may be obtained. (This alternative is
|
|
227 allowed only for noncommercial distribution and only if you
|
|
228 received the program in object code or executable form alone.)
|
|
229 @end itemize
|
|
230
|
|
231 Source code for a work means the preferred form of the work for making
|
|
232 modifications to it. For an executable file, complete source code means
|
|
233 all the source code for all modules it contains; but, as a special
|
|
234 exception, it need not include source code for modules which are standard
|
|
235 libraries that accompany the operating system on which the executable
|
|
236 file runs, or for standard header files or definitions files that
|
|
237 accompany that operating system.
|
|
238
|
|
239 @item
|
|
240 You may not copy, modify, sublicense, distribute or transfer the
|
|
241 Program except as expressly provided under this General Public License.
|
|
242 Any attempt otherwise to copy, modify, sublicense, distribute or transfer
|
|
243 the Program is void, and will automatically terminate your rights to use
|
|
244 the Program under this License. However, parties who have received
|
|
245 copies, or rights to use copies, from you under this General Public
|
|
246 License will not have their licenses terminated so long as such parties
|
|
247 remain in full compliance.
|
|
248
|
|
249 @item
|
|
250 By copying, distributing or modifying the Program (or any work based
|
|
251 on the Program) you indicate your acceptance of this license to do so,
|
|
252 and all its terms and conditions.
|
|
253
|
|
254 @item
|
|
255 Each time you redistribute the Program (or any work based on the
|
|
256 Program), the recipient automatically receives a license from the original
|
|
257 licensor to copy, distribute or modify the Program subject to these
|
|
258 terms and conditions. You may not impose any further restrictions on the
|
|
259 recipients' exercise of the rights granted herein.
|
|
260
|
|
261 @item
|
|
262 The Free Software Foundation may publish revised and/or new versions
|
|
263 of the General Public License from time to time. Such new versions will
|
|
264 be similar in spirit to the present version, but may differ in detail to
|
|
265 address new problems or concerns.
|
|
266
|
|
267 Each version is given a distinguishing version number. If the Program
|
|
268 specifies a version number of the license which applies to it and ``any
|
|
269 later version'', you have the option of following the terms and conditions
|
|
270 either of that version or of any later version published by the Free
|
|
271 Software Foundation. If the Program does not specify a version number of
|
|
272 the license, you may choose any version ever published by the Free Software
|
|
273 Foundation.
|
|
274
|
|
275 @item
|
|
276 If you wish to incorporate parts of the Program into other free
|
|
277 programs whose distribution conditions are different, write to the author
|
|
278 to ask for permission. For software which is copyrighted by the Free
|
|
279 Software Foundation, write to the Free Software Foundation; we sometimes
|
|
280 make exceptions for this. Our decision will be guided by the two goals
|
|
281 of preserving the free status of all derivatives of our free software and
|
|
282 of promoting the sharing and reuse of software generally.
|
|
283
|
|
284 @iftex
|
|
285 @heading NO WARRANTY
|
|
286 @end iftex
|
|
287 @ifinfo
|
|
288 @center NO WARRANTY
|
|
289 @end ifinfo
|
|
290
|
|
291 @item
|
|
292 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
293 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
294 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
295 PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
296 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
297 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
298 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
299 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
300 REPAIR OR CORRECTION.
|
|
301
|
|
302 @item
|
|
303 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
|
304 ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
305 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
306 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
|
307 ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
|
|
308 LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
|
|
309 SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
|
|
310 WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
|
|
311 ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
312 @end enumerate
|
|
313
|
|
314 @iftex
|
|
315 @heading END OF TERMS AND CONDITIONS
|
|
316 @end iftex
|
|
317 @ifinfo
|
|
318 @center END OF TERMS AND CONDITIONS
|
|
319 @end ifinfo
|
|
320
|
|
321 @page
|
|
322 @unnumberedsec Appendix: How to Apply These Terms to Your New Programs
|
|
323
|
|
324 If you develop a new program, and you want it to be of the greatest
|
|
325 possible use to humanity, the best way to achieve this is to make it
|
|
326 free software which everyone can redistribute and change under these
|
|
327 terms.
|
|
328
|
|
329 To do so, attach the following notices to the program. It is safest to
|
|
330 attach them to the start of each source file to most effectively convey
|
|
331 the exclusion of warranty; and each file should have at least the
|
|
332 ``copyright'' line and a pointer to where the full notice is found.
|
|
333
|
|
334 @smallexample
|
|
335 @var{one line to give the program's name and a brief idea of what it does.}
|
|
336 Copyright (C) 19@var{yy} @var{name of author}
|
|
337
|
|
338 This program is free software; you can redistribute it and/or modify
|
|
339 it under the terms of the GNU General Public License as published by
|
|
340 the Free Software Foundation; either version 1, or (at your option)
|
|
341 any later version.
|
|
342
|
|
343 This program is distributed in the hope that it will be useful,
|
|
344 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
345 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
346 GNU General Public License for more details.
|
|
347
|
|
348 You should have received a copy of the GNU General Public License
|
|
349 along with this program; if not, write to the Free Software
|
|
350 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
351 @end smallexample
|
|
352
|
|
353 Also add information on how to contact you by electronic and paper mail.
|
|
354
|
|
355 If the program is interactive, make it output a short notice like this
|
|
356 when it starts in an interactive mode:
|
|
357
|
|
358 @smallexample
|
|
359 Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
|
|
360 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
361 This is free software, and you are welcome to redistribute it
|
|
362 under certain conditions; type `show c' for details.
|
|
363 @end smallexample
|
|
364
|
|
365 The hypothetical commands `show w' and `show c' should show the
|
|
366 appropriate parts of the General Public License. Of course, the
|
|
367 commands you use may be called something other than `show w' and `show
|
|
368 c'; they could even be mouse-clicks or menu items---whatever suits your
|
|
369 program.
|
|
370
|
|
371 You should also get your employer (if you work as a programmer) or your
|
|
372 school, if any, to sign a ``copyright disclaimer'' for the program, if
|
|
373 necessary. Here a sample; alter the names:
|
|
374
|
|
375 @example
|
|
376 Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
377 program `Gnomovision' (a program to direct compilers to make passes
|
|
378 at assemblers) written by James Hacker.
|
|
379
|
|
380 @var{signature of Ty Coon}, 1 April 1989
|
|
381 Ty Coon, President of Vice
|
|
382 @end example
|
|
383
|
|
384 That's all there is to it!
|
|
385
|
|
386 @node Introduction, Starting Up, Top, Top
|
|
387 @unnumbered Introduction
|
|
388
|
|
389 VM (View Mail) is an Emacs subsystem that allows UNIX mail to be read
|
|
390 and disposed of within Emacs. Commands exist to do the normal things
|
|
391 expected of a mail user agent, such as generating replies, saving
|
|
392 messages to folders, deleting messages and so on. There are other more
|
|
393 advanced commands that do tasks like bursting and creating digests,
|
|
394 message forwarding, and organizing message presentation according to
|
|
395 various criteria.
|
|
396
|
|
397 To invoke VM simply type @kbd{M-x vm}. VM gathers any mail that has
|
|
398 arrived in your system mailbox and appends it to a file known as your
|
|
399 @dfn{primary inbox}, and visits that file for reading. @xref{Starting Up}.
|
|
400 A file visited for reading by VM is called the @dfn{current folder}.@refill
|
|
401
|
|
402 @findex vm-scroll-forward
|
|
403 @findex vm-scroll-backward
|
|
404 @kindex SPC
|
|
405 @kindex b
|
|
406 @kindex DEL
|
|
407 If there are any messages in the primary inbox, VM selects the first new
|
|
408 or unread message, and previews it. @dfn{Previewing} is VM's way of
|
|
409 showing you part of message and allowing you to decide whether you want
|
|
410 to read it. @xref{Previewing}. By default VM shows you the message's
|
|
411 sender, recipient, subject and date headers. Typing @key{SPC}
|
|
412 (@code{vm-scroll-forward}) exposes the body of the message and flags the
|
|
413 message as read. Subsequent @key{SPC}'s scroll forward through the
|
|
414 message, @kbd{b} or @key{DEL} scrolls backward. When you reach the end
|
|
415 of a message, typing @key{SPC} or @kbd{n} moves you forward to preview
|
|
416 the next message. @xref{Paging}.@refill
|
|
417
|
|
418 If you do not want to read a message that's being previewed, just type
|
|
419 @kbd{n} and VM will move on to the next message (if there is one).
|
|
420 @xref{Selecting Messages}.@refill
|
|
421
|
|
422 To save a message to a mail folder use @kbd{s} (@code{vm-save-message}).
|
|
423 VM will prompt you for the folder name in the minibuffer.
|
|
424 @xref{Saving Messages}.@refill
|
|
425
|
|
426 Messages are deleted by typing @kbd{d} (@code{vm-delete-message}) while
|
|
427 previewing or reading them. The message is not deleted right away; it
|
|
428 is simply flagged for deletion. If you change your mind about deleting a
|
|
429 message just select it and type @kbd{u} (@code{vm-undelete-message}),
|
|
430 and the message will be undeleted. @xref{Deleting Messages}. The
|
|
431 actual removal of deleted messages from the current folder is called
|
|
432 @dfn{expunging} and it is accomplished by typing @kbd{#}
|
|
433 (@code{vm-expunge-folder}). The message is still present in the on-disk
|
|
434 version of the folder until the folder is saved.@refill
|
|
435
|
|
436 Typing @kbd{h} (@code{vm-summarize}) causes VM to pop up a window
|
|
437 containing a summary of the contents of the current folder. The summary is
|
|
438 presented one line per message, by message number, listing each message's
|
|
439 author, date sent, line and byte count, and subject. Also, various
|
|
440 letters appear beside the message number to indicate that a message is
|
|
441 new, unread, flagged for deletion, etc. An arrow @samp{->} appears to
|
|
442 the left of the line summarizing the current message. The summary
|
|
443 format is user configurable, @pxref{Summaries}.@refill
|
|
444
|
|
445 @findex vm-save-folder
|
|
446 @kindex S
|
|
447 When you are finished reading mail the current folder must be saved, so
|
|
448 that the next time the folder is visited VM will know which messages have
|
|
449 been already read, replied to and so on. Typing @kbd{S}
|
|
450 (@code{vm-save-folder}) expunges all deleted messages and saves the
|
|
451 folder. @kbd{C-x C-s} saves the folder without expunging deleted
|
|
452 messages but the messages are still flagged deleted. The next time the
|
|
453 folder is visited these messages will still be flagged for deletion.@refill
|
|
454
|
|
455 @findex vm-quit
|
|
456 @findex vm-quit-no-change
|
|
457 @kindex q
|
|
458 @kindex x
|
|
459 To quit VM you can type @kbd{q} (@code{vm-quit}) or @kbd{x}
|
|
460 (@code{vm-quit-no-change}). Typing @kbd{q} expunges and saves the
|
|
461 current folder before quitting. Also, any messages flagged new are
|
|
462 changed to be flagged unread, before saving. The @kbd{x} command quits
|
|
463 VM without expunging, saving or otherwise modifying the current folder.
|
|
464 Quitting is not required; you can simply switch to another Emacs buffer
|
|
465 when you've finished reading mail.@refill
|
|
466
|
|
467 @findex vm-get-new-mail
|
|
468 @kindex g
|
|
469 At any time while reading mail in the primary inbox you can type @kbd{g}
|
|
470 (@code{vm-get-new-mail}) to check to see if new mail has arrived. If new
|
|
471 mail has arrived it will be moved from the system spool area and merged into
|
|
472 the primary inbox. If you are not in the middle of another message, VM
|
|
473 will also jump to the first new message.
|
|
474
|
|
475 If @code{vm-get-new-mail} is given a prefix argument, it will prompt for
|
|
476 another file from which to gather messages instead of the usual spool
|
|
477 files. In this case the source folder is copied but not deleted.
|
|
478
|
|
479 @node Starting Up, Selecting Messages, Introduction, Top
|
|
480 @chapter Starting Up
|
|
481
|
|
482 @findex vm-load-rc
|
|
483 @kindex L
|
|
484 There are three ways to start VM: @kbd{M-x vm}, @kbd{M-x vm-visit-folder}
|
|
485 and @code{vm-mode}. The first time VM is started in an Emacs session (by
|
|
486 any of these methods), it attempts to load the file @file{~/.vm}. If
|
|
487 present this file should contain Lisp code, much like the @file{.emacs}
|
|
488 file. Since VM has in excess of forty configuration variables, use of
|
|
489 the @file{~/.vm} can considerably reduce clutter in the @file{.emacs}
|
|
490 file. You can force the reloading of this file on demand by typing
|
|
491 @kbd{L} (@code{vm-load-init-file}) from within VM.@refill
|
|
492
|
|
493 @findex vm
|
|
494 @vindex vm-primary-inbox
|
|
495 @kbd{M-x vm} causes VM to gather any mail present in your system mailbox
|
|
496 and append it to a file known as your @dfn{primary inbox}, creating
|
|
497 this file if necessary. The default name of this file is
|
|
498 @file{~/INBOX}, but VM will use whatever file is named by the variable
|
|
499 @code{vm-primary-inbox}.@refill
|
|
500
|
|
501 @vindex vm-crash-box
|
|
502 VM transfers the mail from the system mailbox to the primary inbox via a
|
|
503 temporary file known as the @dfn{crash box}. The variable
|
|
504 @code{vm-crash-box} names the crash box file. VM first copies the mail
|
|
505 to the crash box, deletes the system mailbox, merges the crash box
|
|
506 contents into the primary inbox, and then deletes the crash box. If the
|
|
507 system or Emacs should crash in the midst of this transfer, any message
|
|
508 not present in the primary inbox will be either in the system mailbox or
|
|
509 the crash box. Some messages may be duplicated but no mail will be
|
|
510 lost.@refill
|
|
511
|
|
512 If the file named by @code{vm-crash-box} already exists when VM is
|
|
513 started up, VM will merge that with the primary inbox before getting any
|
|
514 new messages from the system mailbox.@refill
|
|
515
|
|
516 @vindex vm-spool-files
|
|
517 By default, the location of the system mailbox is determined
|
|
518 heuristically based on what type of system you're using. VM can
|
|
519 be told explicitly where the system mailbox is through the variable
|
|
520 @code{vm-spool-files}. The value of this variable should be a list of
|
|
521 strings naming files VM should try when searching for newly arrived
|
|
522 mail. Multiple mailboxes can be specified if you receive mail in
|
|
523 more than one place. The value of @code{vm-spool-files} will be inherited
|
|
524 from the shell environmental variables MAILPATH or MAIL if either of
|
|
525 these variables are defined.@refill
|
|
526
|
|
527 @findex vm-visit-folder
|
|
528 @kindex v
|
|
529 @kbd{M-x vm-visit-folder} (@kbd{v} from within VM) allows you to visit
|
|
530 some other mail folder than the primary inbox. The folder name will be
|
|
531 prompted for in the minibuffer.@refill
|
|
532
|
|
533 Once VM has read the folder, the first new or unread message will be
|
|
534 selected. If there is no such message, the first message in the folder
|
|
535 is selected.
|
|
536
|
|
537 @findex vm-mode
|
|
538 @kbd{M-x vm-mode} can be used on a buffer already loaded into Emacs to put
|
|
539 it into the VM major mode so that VM commands can be executed from within
|
|
540 it. This command is suitable for use in Lisp programs, and for inclusion in
|
|
541 @code{auto-mode-alist} to automatically start VM on a file based on a
|
|
542 particular filename suffix. @code{vm-mode} foregoes some of VM's startup
|
|
543 procedures (e.g. starting up a summary) to facilitate noninteractive use.
|
|
544
|
|
545 @vindex vm-startup-with-summary
|
|
546 The variable @code{vm-startup-with-summary} controls whether VM
|
|
547 automatically displays a summary of the folder's contents at startup. A
|
|
548 value of @code{nil} gives no summary; a value of @code{t} gives a full
|
|
549 frame summary. A value that is neither @code{t} nor @code{nil} splits
|
|
550 the frame between the summary and the folder display. The latter only
|
|
551 works if the variable @code{pop-up-windows}'s value is non-@code{nil},
|
|
552 and the value of @code{vm-mutable-windows} is non-@code{nil}. The
|
|
553 default value of @code{vm-startup-with-summary} is @code{nil}.@refill
|
|
554
|
|
555 @vindex vm-mail-window-percentage
|
|
556 The variable @code{vm-mail-window-percentage} tells VM what percentage of
|
|
557 the frame should be given to the folder display when both it and the
|
|
558 folder summary are being displayed. Note that Emacs enforces a minimum
|
|
559 window size limit, so a very high or very low value for this variable
|
|
560 may squeeze out one of the displays entirely. This variable's default
|
|
561 value is 75, which works with Emacs' default minimum window size limit,
|
|
562 on a 24 line terminal. Note that the value of @code{vm-mutable-windows}
|
|
563 must be @code{t} or VM will not do window resizing regardless of the
|
|
564 value of @code{vm-mail-window-percentage}.@refill
|
|
565
|
|
566 @vindex vm-inhibit-startup-message
|
|
567 A non-@code{nil} value for the variable @code{vm-inhibit-startup-message}
|
|
568 disables the display of the VM's copyright, copying and warranty
|
|
569 disclaimer. If you must, set this variable in your own @file{.emacs} file;
|
|
570 don't set it globally for everyone. Users should be told their rights.
|
|
571 The startup messages abort at the first keystroke after startup, so they do not
|
|
572 impede mail reading.@refill
|
|
573
|
|
574 @node Selecting Messages, Reading Messages, Starting Up, Top
|
|
575 @chapter Selecting Messages
|
|
576
|
|
577 @findex vm-next-message
|
|
578 @findex vm-previous-message
|
|
579 @kindex n
|
|
580 @kindex p
|
|
581 @vindex vm-skip-deleted-messages
|
|
582 @vindex vm-skip-read-messages
|
|
583 The primary commands for selecting messages in VM are @kbd{n}
|
|
584 (@code{vm-next-message}) and @kbd{p} (@code{vm-previous-message}).
|
|
585 These commands move forward and backward through the current folder.
|
|
586 When they go beyond the end or beginning of the folder they wrap to the
|
|
587 beginning and end respectively. By default, these commands skip messages
|
|
588 flagged for deletion. This behavior can be disabled by setting the value
|
|
589 of the variable @code{vm-skip-deleted-messages} to @code{nil}. These
|
|
590 commands can also be made to skip messages that have been read; set
|
|
591 @code{vm-skip-read-messages} to @code{t} to do this.
|
|
592
|
|
593 The commands @kbd{n} and @kbd{p} also take prefix arguments that specify
|
|
594 the number of messages to move forward or backward. If the magnitude of
|
|
595 the prefix argument is greater than 1, no message skipping will be done
|
|
596 regardless of the settings of the previously mentioned skip control
|
|
597 variables.@refill
|
|
598
|
|
599 @vindex vm-circular-folders
|
|
600 The variable @code{vm-circular-folders} determines whether VM folders
|
|
601 will be considered circular by various commands. @dfn{Circular} means VM
|
|
602 will wrap from the end of the folder to the start and vice versa when
|
|
603 moving the message pointer, deleting, undeleting or saving messages
|
|
604 before or after the current message.@refill
|
|
605
|
|
606 A value of @code{t} causes all VM commands to consider folders circular.
|
|
607 A value of @code{nil} causes all of VM commands to signal an error if
|
|
608 the start or end of the folder would have to be passed to complete the
|
|
609 command. For movement commands, this occurs after the message pointer
|
|
610 has been moved as far it can go. For other commands the error occurs
|
|
611 before any part of the command has been executed, i.e. no deletions, saves,
|
|
612 etc. will be done unless they can be done in their entirety. A value
|
|
613 other than @code{nil} or @code{t} causes only VM's movement
|
|
614 commands to consider folders circular. Saves, deletes and undeletes
|
|
615 will behave as if the value is @code{nil}. The default value of
|
|
616 @code{vm-circular-folders} is @code{0}.@refill
|
|
617
|
|
618 Other commands to select messages:
|
|
619
|
|
620 @table @kbd
|
|
621 @findex vm-goto-message
|
|
622 @kindex RET
|
|
623 @item RET (@code{vm-goto-message})
|
|
624 Go to message number @var{n}. @var{n} is the prefix argument, if
|
|
625 provided, otherwise it is prompted for in the minibuffer.
|
|
626 @findex vm-goto-message
|
|
627 @kindex TAB
|
|
628 @item TAB (@code{vm-goto-message-last-seen})
|
|
629 Go to message last previewed or read.
|
|
630 @findex vm-Next-message
|
|
631 @findex vm-Previous-message
|
|
632 @kindex N
|
|
633 @kindex P
|
|
634 @item N (@code{vm-Next-message})
|
|
635 @itemx P (@code{vm-Previous-message})
|
|
636 Go to the next (previous) message, ignoring the settings of the skip
|
|
637 control variables.
|
|
638 @findex vm-next-unread-message
|
|
639 @findex vm-previous-unread-message
|
|
640 @kindex M-n
|
|
641 @kindex M-p
|
|
642 @item M-n (@code{vm-next-unread-message})
|
|
643 @itemx M-p (@code{vm-previous-unread-message})
|
|
644 Move forward (backward) to the nearest new or unread message. If no
|
|
645 such message exists then these commands work like @kbd{n} and @kbd{p}.
|
|
646 @findex vm-isearch-forward
|
|
647 @findex vm-isearch-backward
|
|
648 @kindex M-s
|
|
649 @comment @kindex M-r
|
|
650 @vindex vm-search-using-regexps
|
|
651 @item M-s (@code{vm-isearch-forward})
|
|
652 @itemx M-x vm-isearch-backward
|
|
653 These work just like Emacs' normal forward and backward incremental
|
|
654 search commands, except that when the search ends, VM selects the
|
|
655 message containing point. If the value of the variable
|
|
656 @code{vm-search-using-regexps} is non-@code{nil}, a regular expression
|
|
657 may be used instead of a fixed string for the search pattern; VM
|
|
658 defaults to the fixed string search. If a prefix argument is given,
|
|
659 the value of @code{vm-search-using-regexps} is temporarily toggled for
|
|
660 the search.
|
|
661 @xref{Incremental Search,,,emacs, the GNU Emacs Manual}.@refill
|
|
662 @end table
|
|
663
|
|
664 @node Reading Messages, Sending Messages, Selecting Messages, Top
|
|
665 @chapter Reading Messages
|
|
666
|
|
667 Once a message has been selected, VM will present it to you. By default,
|
|
668 presentation is done in two stages: @dfn{previewing} and @dfn{paging}.
|
|
669
|
|
670 @menu
|
|
671 * Previewing:: Customizing message previews.
|
|
672 * Paging:: Scrolling and paging through the current message.
|
|
673 @end menu
|
|
674
|
|
675 @node Previewing, Paging, Reading Messages, Reading Messages
|
|
676 @section Previewing
|
|
677
|
|
678 @dfn{Previewing} is VM's way of showing you a small portion of a message
|
|
679 and allowing you to decide whether you want to read it. Typing
|
|
680 @key{SPC} exposes the body of the message, and from there you can
|
|
681 repeatedly type @key{SPC} to page through the message.
|
|
682
|
|
683 By default, the sender, recipient, subject and date headers are shown
|
|
684 when previewing; the rest of the message is hidden. This behavior may
|
|
685 be altered by changing the settings of three variables:
|
|
686 @code{vm-visible-headers}, @code{vm-invisible-header-regexp} and
|
|
687 @code{vm-preview-lines}.@refill
|
|
688
|
|
689 @vindex vm-preview-lines
|
|
690 The value of @code{vm-preview-lines} should be a number that tells VM
|
|
691 how many lines of the text of the message should be visible. The default
|
|
692 value of this variable is 0. If @code{vm-preview-lines} is @code{nil},
|
|
693 then previewing is not done at all; when a message is first presented it
|
|
694 is immediately exposed in its entirety and is flagged as read.@refill
|
|
695
|
|
696 @vindex vm-visible-headers
|
|
697 The value of @code{vm-visible-headers} should be a list of regular
|
|
698 expressions matching the beginnings of headers that should be made
|
|
699 visible when a message is presented. The regexps should be listed in
|
|
700 the preferred presentation order of the headers they match.@refill
|
|
701
|
|
702 @vindex vm-invisible-header-regexp
|
|
703 If non-@code{nil}, the variable @code{vm-invisible-header-regexp}
|
|
704 specifies what headers should @emph{not} be displayed. Its value should
|
|
705 be a string containing a regular expression that matches all headers you
|
|
706 do not want to see. Setting this variable non-@code{nil} implies that
|
|
707 you want to see all headers not matched by it; therefore the value of
|
|
708 @code{vm-visible-headers} is only used to determine the order of the
|
|
709 visible headers in this case. Headers not matched by
|
|
710 @code{vm-invisible-header-regexp} or @code{vm-visible-headers} are
|
|
711 displayed last.@refill
|
|
712
|
|
713 If you change the value of either @code{vm-visible-headers} or
|
|
714 @code{vm-invisible-header-regexp} in the middle of a VM session the
|
|
715 effects will not be immediate. You will need to use the command
|
|
716 @code{vm-discard-cached-data} on each message (bound to @kbd{j} by
|
|
717 default) to force VM rearrange the message headers. A good way to do
|
|
718 this is to mark all the messages in the folder and apply
|
|
719 @code{vm-discard-cached-data} to the marked messages. @xref{Message
|
|
720 Marks}.@refill
|
|
721
|
|
722 @vindex vm-highlighted-header-regexp
|
|
723 Another variable of interest is @code{vm-highlighted-header-regexp}. The
|
|
724 value of this variable should be a single regular expression that
|
|
725 matches the beginnings of any header that should be presented in inverse
|
|
726 video when previewing. For example, a value of @samp{"^From\\|^Subject"}
|
|
727 causes the From and Subject headers to be highlighted.@refill
|
|
728
|
|
729 @vindex vm-preview-read-messages
|
|
730 By default, VM previews all messages, even if they have already been read.
|
|
731 To have VM preview only those messages that have not been read, set the
|
|
732 value of @code{vm-preview-read-messages} to @code{nil}.
|
|
733
|
|
734 @findex vm-expose-hidden-headers
|
|
735 Typing @kbd{t} (@code{vm-expose-hidden-headers}) makes VM toggle
|
|
736 between exposing and hiding headers that would ordinarily be hidden.@refill
|
|
737
|
|
738 @node Paging,, Previewing, Reading Messages
|
|
739 @section Paging
|
|
740
|
|
741 @vindex vm-auto-next-message
|
|
742 Typing @key{SPC} during a message preview exposes the body of the
|
|
743 message. If the message was new or previously unread, it will be flagged
|
|
744 ``read''. At this point you can use @key{SPC} to scroll forward, and
|
|
745 @kbd{b} or @key{DEL} to scroll backward a windowful of text at a time.
|
|
746 Typing space at the end of a message moves you to the next message. If
|
|
747 the value of @code{vm-auto-next-message} is @code{nil}, @key{SPC} will
|
|
748 not move to the next message; you must type @kbd{n} explicitly.
|
|
749
|
|
750 If the value of @code{vm-honor-page-delimiters} is non-@code{nil}, VM
|
|
751 will recognize and honor page delimiters. This means that when you
|
|
752 scroll through a document, VM will display text only up to the next page
|
|
753 delimiter. Text after the delimiter will be hidden until you type
|
|
754 another @key{SPC}, at which point the text preceding the delimiter will
|
|
755 become hidden. The Emacs variable @code{page-delimiter} determines what
|
|
756 VM will consider to be a page delimiter.
|
|
757
|
|
758 You can ``unread'' a message (so to speak) by typing @kbd{U}
|
|
759 (@code{vm-unread-message}). The current message will be flagged unread.
|
|
760
|
|
761 @node Sending Messages, Saving Messages, Reading Messages, Top
|
|
762 @chapter Sending Messages
|
|
763
|
|
764 When sending messages from within VM, you will be using the standard
|
|
765 Mail major mode provided with GNU Emacs. @xref{Mail Mode,,,emacs, the
|
|
766 GNU Emacs Manual}.
|
|
767 However, @samp{*mail*} buffers created by VM have extra command keys:
|
|
768
|
|
769 @table @kbd
|
|
770 @findex vm-yank-message
|
|
771 @kindex C-c C-y
|
|
772 @item C-c C-y (@code{vm-yank-message})
|
|
773 Copies a message from the current folder into the @samp{*mail*} buffer.
|
|
774 The message number is read from the minibuffer. By default, each line of
|
|
775 the copy is prepended with the value of the variable
|
|
776 @code{vm-included-text-prefix}. All message headers are yanked along
|
|
777 with the text. Point is left before the inserted text, the mark after.
|
|
778 Any hook functions bound to mail-yank-hooks are run, after inserting
|
|
779 the text and setting point and mark. If a prefix argument is given,
|
|
780 this tells VM to ignore mail-yank-hooks, don't set the mark, don't prepend the
|
|
781 value of vm-included-text-prefix to every yanked line, and don't yank
|
|
782 any headers other than those specified in
|
|
783 vm-visible-headers/vm-invisible-headers.@refill
|
|
784 @kindex C-c y
|
|
785 @findex vm-yank-message-other-folder
|
|
786 @item C-c y (@code{vm-yank-message-other-folder})
|
|
787 Work like @code{vm-yank-message}, but it first prompts for the name of a
|
|
788 folder from which to yank the message.@refill
|
|
789 @kindex C-c C-v
|
|
790 @item C-c C-v <Any VM command key>
|
|
791 All VM commands may be accessed in the @samp{*mail*} buffer by prefixing them
|
|
792 with C-c C-v.
|
|
793 @end table
|
|
794
|
|
795 @findex vm-mail
|
|
796 @kindex m
|
|
797 The simplest command is @kbd{m} (@code{vm-mail}) which sends a mail
|
|
798 message much as @kbd{M-x mail} does but allows the added commands
|
|
799 described above.
|
|
800
|
|
801 @code{vm-mail} can be invoked outside of VM by typing @kbd{M-x vm-mail}.
|
|
802 However, of the above commands, only @kbd{C-c y}
|
|
803 (@code{vm-yank-message-other-folder}) will work; all the other commands
|
|
804 require a parent folder.@refill
|
|
805
|
|
806 If you send a message and it is returned by the mail system because it
|
|
807 was undeliverable, you can easily resend the message by typing @kbd{M-r}
|
|
808 (@code{vm-resend-bounced-message}). VM will extract the old message and
|
|
809 its pertinent headers from the returned message, and place you in a
|
|
810 @samp{*mail*} buffer. You can then change the recipient addresses or do
|
|
811 whatever is necessary to correct the original problem and resend the
|
|
812 message.@refill
|
|
813
|
|
814 @menu
|
|
815 * Replying:: Describes the various ways to reply to a message.
|
|
816 * Forwarding Messages:: How to forward a message to a third party.
|
|
817 @end menu
|
|
818
|
|
819 @node Replying, Forwarding Messages, Sending Messages, Sending Messages
|
|
820 @section Replying
|
|
821
|
|
822 @vindex vm-reply-subject-prefix
|
|
823 VM has special commands that make it easy to reply to a message. When a
|
|
824 reply command is invoked, VM fills in the subject and recipient headers
|
|
825 for you, since it is apparent to whom the message should be sent and
|
|
826 what the subject should be. There is an old convention of prepending
|
|
827 the string @samp{"Re: "} to the subject of replies if the string isn't
|
|
828 present already. VM supports this indirectly by providing the variable
|
|
829 @code{vm-reply-subject-prefix}. Its value should be a string to prepend
|
|
830 to the subject of replies, if the said string isn't present already. A
|
|
831 @code{nil} value means don't prepend anything to the subject (this is
|
|
832 the default). In any case you can edit any of the message headers
|
|
833 manually, if you wish.@refill
|
|
834
|
|
835 @vindex vm-included-text-prefix
|
|
836 VM also helps you quote material from a message to which you are
|
|
837 replying by providing @dfn{included text} as a feature of some of the
|
|
838 commands. @dfn{Included text} is a copy of the message being replied to with
|
|
839 some fixed string prepended to each line so that included text can be
|
|
840 distinguished from the text of the reply. The variable
|
|
841 @code{vm-included-text-prefix} specifies what the prepended string will
|
|
842 be.@refill
|
|
843
|
|
844 @vindex vm-included-text-attribution-format
|
|
845 The variable @code{vm-included-text-attribution-format} specifies the
|
|
846 format for the attribution of included text. This attribution is a line
|
|
847 of text that tells who wrote the text that is to be included; it will be
|
|
848 inserted before the included text. If non-@code{nil}, the value of
|
|
849 @code{vm-included-text-attribution-format} should be a string format
|
|
850 specification similar to @code{vm-summary-format}. @xref{Summaries}. A
|
|
851 @code{nil} value causes the attribution to be omitted.@refill
|
|
852
|
|
853 @vindex vm-in-reply-to-format
|
|
854 The variable @code{vm-in-reply-to-format} specifies the format of the
|
|
855 In-Reply-To header that is inserted into header section of the reply
|
|
856 buffer. Like @code{vm-included-text-attribution-format},
|
|
857 @code{vm-in-reply-to-format} should be a string similar to that of
|
|
858 @code{vm-summary-format}. A @code{nil} value causes the In-Reply-To
|
|
859 header to be omitted.@refill
|
|
860
|
|
861 @vindex vm-strip-reply-headers
|
|
862 The recipient headers generated for reply messages are created by
|
|
863 simply copying the appropriate headers for the message to which you are
|
|
864 replying. This includes any full name information, comments, etc. in
|
|
865 these headers. If the variable @code{vm-strip-reply-headers} is
|
|
866 non-@code{nil}, the reply headers will stripped of all information but
|
|
867 the actual addresses.
|
|
868
|
|
869 The reply commands are:
|
|
870
|
|
871 @table @kbd
|
|
872 @findex vm-reply
|
|
873 @kindex r
|
|
874 @item r (@code{vm-reply})
|
|
875 Replies to the author of the current message.
|
|
876 @findex vm-reply-include-text
|
|
877 @kindex R
|
|
878 @item R (@code{vm-reply-include-text})
|
|
879 Replies to the author of the current message and provides included text.
|
|
880 @findex vm-followup
|
|
881 @kindex f
|
|
882 @item f (@code{vm-followup})
|
|
883 Replies to the all recipients of the current message.
|
|
884 @findex vm-followup-include-text
|
|
885 @kindex F
|
|
886 @item F (@code{vm-followup-include-text})
|
|
887 Replies to the all recipients of the current message and provides
|
|
888 included text.
|
|
889 @end table
|
|
890
|
|
891 These commands all accept a numeric prefix argument @var{n}, which if
|
|
892 present, causes VM to reply to the next (or previous if the argument is
|
|
893 negative) @var{n-1} message as well as the current message. Also all
|
|
894 the reply commands set the ``replied'' attribute of the messages to
|
|
895 which you are responding, but only when the reply is actually sent. The
|
|
896 reply commands can also be applied to marked messages,
|
|
897 @pxref{Message Marks}.@refill
|
|
898
|
|
899 @vindex vm-reply-ignored-addresses
|
|
900 If you are one of multiple recipients of a message and you use @kbd{f}
|
|
901 and @kbd{F}, your address will be included in the recipients of the
|
|
902 reply. You can avoid this by judicious use of the variable
|
|
903 @code{vm-reply-ignored-addresses}. Its value should be a list of
|
|
904 regular expressions that match addresses that VM should automatically
|
|
905 remove from the recipient headers of replies.
|
|
906
|
|
907 @node Forwarding Messages,, Replying, Sending Messages
|
|
908 @section Forwarding Messages
|
|
909
|
|
910 VM has two commands to forward messages: @kbd{z}
|
|
911 (@code{vm-forward-message}) and @key{@@} (@code{vm-send-digest}).@refill
|
|
912
|
|
913 @findex vm-forward-message
|
|
914 @kindex z
|
|
915 @vindex vm-rfc934-forwarding
|
|
916 @vindex vm-forwarding-subject-format
|
|
917 Typing @kbd{z} puts you into a @samp{*mail*} buffer just like @kbd{m},
|
|
918 except the current message appears as the body of the message in the
|
|
919 @samp{*mail*} buffer. The forwarded message is surrounded by RFC 934
|
|
920 compliant message delimiters. If the variable
|
|
921 @code{vm-rfc934-forwarding} is non-@code{nil}, "^-" to "- -" character
|
|
922 stuffing is done to the forwarded message (this is the default). This
|
|
923 behavior is required if the recipient of the forwarded message wants to
|
|
924 use a RFC 934 standard bursting agent to access the message. If the
|
|
925 variable @code{vm-forwarding-subject-format} is non-@code{nil} it should
|
|
926 specify the format of the Subject header of the forwarded message. This
|
|
927 subject will be used as the contents of the Subject header automatically
|
|
928 inserted into the @samp{*mail*} buffer. A @code{nil} value causes the
|
|
929 Subject header to be left blank. The forwarded message is flagged
|
|
930 ``forwarded''.@refill
|
|
931 @findex vm-send-digest
|
|
932 @vindex vm-digest-preamble-format
|
|
933 @vindex vm-digest-center-preamble
|
|
934 @kindex @@
|
|
935 The command @key{@@} (@code{vm-send-digest}) works like @kbd{z} except
|
|
936 that a digest of all the messages in the current folder is made and
|
|
937 inserted into the @samp{*mail*} buffer. Also, @code{vm-send-digest} can
|
|
938 be applied to marked messages. @xref{Message Marks}. When applied to
|
|
939 marked messages, @code{vm-send-digest} will only bundle marked messages,
|
|
940 as opposed to the usual bundling of all messages in the current folder.
|
|
941 If you give @code{vm-send-digest} a prefix argument, VM will insert a
|
|
942 list of preamble lines at the beginning of the digest, one line per
|
|
943 digestified message. The variable @code{vm-digest-preamble-format}
|
|
944 determines the format of the preamble lines. If the value of
|
|
945 @code{vm-digest-center-preamble} is non-@code{nil}, the preamble lines
|
|
946 will be centered.@refill
|
|
947
|
|
948 @node Saving Messages, Deleting Messages, Sending Messages, Top
|
|
949 @chapter Saving Messages
|
|
950
|
|
951 Mail messages are normally saved to files that contain only mail
|
|
952 messages. Such files are called @dfn{folders}.
|
|
953
|
|
954 @findex vm-save-message
|
|
955 @kindex s
|
|
956 The VM command to save a message to a folder is @kbd{s}
|
|
957 (@code{vm-save-message}); invoking this command causes the current
|
|
958 message to be saved to a folder whose name you specify in the
|
|
959 minibuffer. If @code{vm-save-message} is given a prefix argument
|
|
960 @var{n}, the current message plus the next @var{n-1} message are saved.
|
|
961 If @var{n} is negative, the current message and the previous @var{n-1}
|
|
962 messages are saved. Messages saved with @code{vm-save-message} are
|
|
963 flagged ``filed''.@refill
|
|
964
|
|
965 @vindex vm-confirm-new-folders
|
|
966 If the value of the variable @code{vm-confirm-new-folders} is
|
|
967 non-@code{nil}, VM will ask for confirmation before creating a new
|
|
968 folder on interactive saves.@refill
|
|
969
|
|
970 @vindex vm-folder-directory
|
|
971 If you have a directory where you keep all your mail folders, you should
|
|
972 set the variable @code{vm-folder-directory} to point to it. If this
|
|
973 variable is set, @code{vm-save-message} will insert this directory name
|
|
974 into the minibuffer before prompting you for a folder name; this will save
|
|
975 you some typing.@refill
|
|
976
|
|
977 @vindex vm-auto-folder-alist
|
|
978 Another aid to selecting folders in which to save mail is the variable
|
|
979 @code{vm-auto-folder-alist}. The value of this variable should be a
|
|
980 list of the form,@refill
|
|
981
|
|
982 @display
|
|
983 ((@var{header-name}
|
|
984 (@var{regexp} . @var{folder-name}) ...)
|
|
985 ...)
|
|
986 @end display
|
|
987
|
|
988 where @var{header-name} and @var{regexp} are strings, and
|
|
989 @var{folder-name} is a string or an s-expression that evaluates to a
|
|
990 string.@refill
|
|
991
|
|
992 If any part of the contents of the message header named by
|
|
993 @var{header-name} is matched by the regular expression @var{regexp}, VM
|
|
994 will evaluate the corresponding @var{folder-name} and use the result as
|
|
995 the default when prompting for a folder to save the message in. If
|
|
996 the resulting folder name is a relative pathname it resolves to the directory
|
|
997 named by @code{vm-folder-directory}, or the @code{default-directory} of
|
|
998 the currently visited folder if @code{vm-folder-directory} is @code{nil}.@refill
|
|
999
|
|
1000 When @var{folder-name} is evaluated, the current buffer will contain only
|
|
1001 the contents of the header named by @var{header-name}. It is safe to
|
|
1002 modify this buffer. You can use the match data from any @samp{\( @dots{}
|
|
1003 \)} grouping constructs in @var{regexp} along with the function
|
|
1004 @code{buffer-substring} to build a folder name based on the header information.
|
|
1005 If the result of evaluating @var{folder-name} is a list, then the list will
|
|
1006 be treated as another auto-folder-alist and will be descended
|
|
1007 recursively.@refill
|
|
1008
|
|
1009 @vindex vm-auto-folder-case-fold-search
|
|
1010 Whether matching is case sensitive depends on the value of the variable
|
|
1011 @code{vm-auto-folder-case-fold-search}. A non-@code{nil} value makes
|
|
1012 matching case insensitive. The default value is @code{t}, which means
|
|
1013 matching is case sensitive. Note that the matching of header names is
|
|
1014 always case insensitive because RFC 822 specifies that header names are
|
|
1015 case indistinct.
|
|
1016
|
|
1017 @vindex vm-visit-when-saving
|
|
1018 VM can save messages to a folder in two distinct ways. The message can be
|
|
1019 appended directly to the folder on disk, or the folder can be visited as
|
|
1020 Emacs would visit any other file and the message be appended to that
|
|
1021 buffer. In the latter method you must save the buffer yourself to change
|
|
1022 the on-disk copy of the folder. The variable @code{vm-visit-when-saving}
|
|
1023 controls which method is used. A value of @code{t} causes VM to always
|
|
1024 visit a folder before saving message to it. A @code{nil} value causes VM
|
|
1025 to always append directly to the folder file. In this case VM will not
|
|
1026 save messages to the disk copy of a folder that is being visited. This
|
|
1027 restriction is necessary to insure that the buffer and on-disk copies of
|
|
1028 the folder are consistent. If the value of @var{vm-visit-when-saving} is
|
|
1029 not @code{nil} and not @code{t} (e.g. 0, the default), VM will append to
|
|
1030 the folder's buffer if the buffer is currently being visited, otherwise VM
|
|
1031 will append to the file itself.@refill
|
|
1032
|
|
1033 @vindex vm-delete-after-saving
|
|
1034 After a message is saved to a folder, the usual thing to do next is to
|
|
1035 delete it. If the variable @code{vm-delete-after-saving} is
|
|
1036 non-@code{nil}, VM will flag messages for deletion automatically after
|
|
1037 saving them. This applies only to saves to folders, not for the @kbd{w}
|
|
1038 command (see below).@refill
|
|
1039
|
|
1040 Other commands:
|
|
1041
|
|
1042 @table @kbd
|
|
1043 @findex vm-save-message-sans-headers
|
|
1044 @kindex w
|
|
1045 @item w (@code{vm-save-message-sans-headers})
|
|
1046 Saves a message or messages to a file without their headers. This
|
|
1047 command responds to a prefix argument exactly as @code{vm-save-message}
|
|
1048 does. Messages saved this way are flagged ``written''.
|
|
1049 @findex vm-auto-archive-messages
|
|
1050 @kindex A
|
|
1051 @item A (@code{vm-auto-archive-messages})
|
|
1052 Save all unfiled messages that auto-match a folder via
|
|
1053 @code{vm-auto-folder-alist} to their appropriate folders. Messages that
|
|
1054 are flagged for deletion are not saved by this command. If invoked with a
|
|
1055 prefix argument, confirmation will be requested for each save.
|
|
1056 @findex vm-pipe-message-to-command
|
|
1057 @kindex |
|
|
1058 @item | (@code{vm-pipe-message-to-command})
|
|
1059 Runs a shell command with some or all of the current message as input.
|
|
1060 By default, the entire message is used.@*
|
|
1061 @*
|
|
1062 If invoked with one @t{C-u} the text portion of the message is used.@*
|
|
1063 If invoked with two @t{C-u}'s the header portion of the message is used.@*
|
|
1064 @*
|
|
1065 If the shell command generates any output, it is displayed in a
|
|
1066 @samp{*Shell Command Output*} buffer. The message itself is not altered.
|
|
1067 @end table
|
|
1068
|
|
1069 @node Deleting Messages, Editing Messages, Saving Messages, Top
|
|
1070 @chapter Deleting Messages
|
|
1071
|
|
1072 In VM, messages are flagged for deletion, and then are subsequently
|
|
1073 @dfn{expunged} or removed from the folder. The messages are not removed
|
|
1074 from the on-disk copy of the folder until the folder is saved.
|
|
1075
|
|
1076 @table @kbd
|
|
1077 @findex vm-delete-message
|
|
1078 @kindex d
|
|
1079 @item d (@code{vm-delete-message})
|
|
1080 Flags the current message for deletion. A prefix argument @var{n}
|
|
1081 causes the current message and the next @var{n-1} messages to be flagged.
|
|
1082 A negative @var{n} causes the current message and the previous @var{n-1}
|
|
1083 messages to be flagged.
|
|
1084 @findex vm-undelete-message
|
|
1085 @kindex u
|
|
1086 @item u (@code{vm-undelete-message})
|
|
1087 Removes the deletion flag from the current message. A prefix argument @var{n}
|
|
1088 causes the current message and the next @var{n-1} messages to be undeleted.
|
|
1089 A negative @var{n} causes the current message and the previous @var{n-1}
|
|
1090 messages to be undeleted.
|
|
1091 @findex vm-kill-subject
|
|
1092 @kindex k
|
|
1093 @item k (@code{vm-kill-subject})
|
|
1094 Flags all messages with the same subject as the current message (ignoring
|
|
1095 ``Re:'') for deletion.
|
|
1096 @findex vm-expunge-folder
|
|
1097 @kindex #
|
|
1098 @item # (@code{vm-expunge-folder})
|
|
1099 Does the actual removal of messages flagged for deletion in the current
|
|
1100 folder.
|
|
1101 @end table
|
|
1102
|
|
1103 @vindex vm-move-after-deleting
|
|
1104 @vindex vm-move-after-undeleting
|
|
1105 Setting the variable @code{vm-move-after-deleting} non-@code{nil} causes
|
|
1106 VM to move past the messages after flagging them for deletion. Setting
|
|
1107 @code{vm-move-after-undeleting} non-@code{nil} causes similar movement after undeletes.@refill
|
|
1108
|
|
1109 @node Editing Messages, Message Marks, Deleting Messages, Top
|
|
1110 @chapter Editing Messages
|
|
1111
|
|
1112 To edit a message, type @kbd{e} (@code{vm-edit-message}). The current
|
|
1113 message is copied into a temporary buffer, and this buffer is selected
|
|
1114 for editing. The major mode of this buffer is controlled by the
|
|
1115 variable @code{vm-edit-message-mode}. The default is Text mode.@refill
|
|
1116
|
|
1117 Use @kbd{C-c ESC} (@code{vm-edit-message-end}) when you have finished
|
|
1118 editing the message. The message will be inserted into its folder,
|
|
1119 replacing the old version of the message. If you want to quit the edit
|
|
1120 without your edited version replacing the original, use @kbd{C-c C-]}
|
|
1121 (@code{vm-edit-message-abort}), or you can just kill the edit buffer
|
|
1122 with @kbd{C-x k} (@code{kill-buffer}).@refill
|
|
1123
|
|
1124 If you give a prefix argument to @code{vm-edit-message}, then the
|
|
1125 current message will be flagged unedited.@refill
|
|
1126
|
|
1127 As with VM @samp{*mail*} buffers, all VM commands can be accessed from
|
|
1128 the edit buffer through the command prefix @kbd{C-c C-v}.@refill
|
|
1129
|
|
1130 @node Message Marks, Undoing, Editing Messages, Top
|
|
1131 @chapter Message Marks
|
|
1132
|
|
1133 VM provides general purpose @dfn{marks} that may be applied to any and
|
|
1134 all messages within a given folder. Certain VM commands can be
|
|
1135 subsequently invoked only on those message that are marked.
|
|
1136
|
|
1137 To mark the current message, type @kbd{C-c C-@@}
|
|
1138 (@code{vm-mark-message}). If you give a numeric prefix argument
|
|
1139 @var{n}, the next @var{n-1} messages will be marked as well. A negative
|
|
1140 prefix argument means mark the previous @var{n-1}. An asterisk
|
|
1141 (@samp{*}) will appear to the right of the message numbers of all marked
|
|
1142 messages in the summary window.@refill
|
|
1143
|
|
1144 To remove a mark from the current message, use @kbd{C-c SPC}
|
|
1145 (@code{vm-unmark-message}). Prefix arguments work as with
|
|
1146 @code{vm-mark-message}.@refill
|
|
1147
|
|
1148 Use @kbd{C-c C-a} to mark all messages in the current folder; @kbd{C-c a}
|
|
1149 removes marks from all messages.
|
|
1150
|
|
1151 To apply a VM command to all marked message you must prefix it with the
|
|
1152 key sequence @kbd{C-c RET} (@code{vm-next-command-uses-marks}). The
|
|
1153 next VM command will apply to all marked messages, provided the
|
|
1154 command can be applied to such messages in a meaningful and useful way.
|
|
1155 The current commands that can be applied to marked messages are:
|
|
1156 @code{vm-delete-message}, @code{vm-discard-cached-data},
|
|
1157 @code{vm-followup}, @code{vm-followup-include-text}, @code{vm-reply},
|
|
1158 @code{vm-reply-include-text}, @code{vm-save-message},
|
|
1159 @code{vm-save-message-sans-headers}, @code{vm-send-digest},
|
|
1160 @code{vm-undelete-message}, and @code{vm-unread-message}.@refill
|
|
1161
|
|
1162 @node Undoing, Grouping Messages, Message Marks, Top
|
|
1163 @chapter Undoing
|
|
1164
|
|
1165 VM provides a special form of undo which allows changes to message attributes
|
|
1166 to be undone.
|
|
1167
|
|
1168 @findex vm-undo
|
|
1169 @kindex C-x u
|
|
1170 @kindex C-_
|
|
1171 Typing @kbd{C-x u} or @key{C-_} (@code{vm-undo}) undoes the last
|
|
1172 attribute change. Consecutive @code{vm-undo}'s undo further and further
|
|
1173 back. Any intervening command breaks the undo chain, after which the
|
|
1174 undos themselves become undoable by subsequent invocations of
|
|
1175 @code{vm-undo}.@refill
|
|
1176
|
|
1177 Note that expunges, saves and message edits are @emph{not} undoable.
|
|
1178
|
|
1179 @node Grouping Messages, Reading Digests, Undoing, Top
|
|
1180 @chapter Grouping Messages
|
|
1181
|
|
1182 @findex vm-group-messages
|
|
1183 @kindex G
|
|
1184 In order to make numerous related messages easier to cope with, VM
|
|
1185 provides the command @kbd{G} (@code{vm-group-messages}), which groups
|
|
1186 all messages in a folder according to some criterion. @dfn{Grouping}
|
|
1187 causes messages that are related in some way to be presented
|
|
1188 consecutively. The actual order of the folder is not altered;
|
|
1189 the messages are simply numbered and presented differently. Grouping
|
|
1190 should not be confused with sorting; grouping only moves messages that
|
|
1191 occur later in the folder backward to ``clump'' with other related
|
|
1192 messages.@refill
|
|
1193
|
|
1194 The grouping criteria currently supported are:
|
|
1195 @table @samp
|
|
1196 @item subject
|
|
1197 Messages with the same subject (ignoring ``Re:'' prefixes) are grouped
|
|
1198 together.
|
|
1199 @item author
|
|
1200 Messages with the same author are grouped together.
|
|
1201 @item recipient
|
|
1202 Message with the same recipients are grouped together.
|
|
1203 @item date-sent
|
|
1204 Messages sent on the same day are grouped together.
|
|
1205 @item physical-order
|
|
1206 Message presentation reverts to physical message order of the folder (the
|
|
1207 default).
|
|
1208 @end table
|
|
1209
|
|
1210 @vindex vm-group-by
|
|
1211 If the variable @code{vm-group-by} has a non-@code{nil} value it
|
|
1212 specifies the default grouping that will be used for all folders. So if
|
|
1213 you like having your mail presented to you grouped by subject, then put
|
|
1214 @code{(setq vm-group-by "subject")} in your @file{.vm} or @file{.emacs}
|
|
1215 file to get this behavior.@refill
|
|
1216
|
|
1217 @node Reading Digests, Summaries, Grouping Messages, Top
|
|
1218 @chapter Reading Digests
|
|
1219
|
|
1220 A @dfn{digest} is one or more mail messages encapsulated in a single message.
|
|
1221
|
|
1222 VM supports digests by providing a command to ``burst'' them into their
|
|
1223 individual messages. These messages can then be handled like any other
|
|
1224 messages under VM.
|
|
1225
|
|
1226 @findex vm-burst-digest
|
|
1227 @kindex *
|
|
1228 The command @kbd{*} (@code{vm-burst-digest}) bursts a digest into its
|
|
1229 individual messages and appends them to the current folder. These
|
|
1230 messages are then assimilated into the current folder using the default
|
|
1231 grouping. @xref{Grouping Messages}. The original digest message is not
|
|
1232 altered, and the messages extracted from it are not part of the on-disk copy
|
|
1233 of the folder until a save is done.@refill
|
|
1234
|
|
1235 If you give a prefix argument to @code{vm-burst-digest}, it will attempt
|
|
1236 to cope with non-RFC 934 compliant digests. If @code{vm-burst-digest}
|
|
1237 seems to be breaking digests at inappropriate places, most likely the
|
|
1238 digest is not compliant with the standard. In this case try using the
|
|
1239 prefix arg.
|
|
1240
|
|
1241 @node Summaries, Miscellaneous, Reading Digests, Top
|
|
1242 @chapter Summaries
|
|
1243
|
|
1244 @findex vm-summarize
|
|
1245 @vindex vm-auto-center-summary
|
|
1246 @kindex h
|
|
1247 Typing @kbd{h} (@code{vm-summarize}) causes VM to display a summary of
|
|
1248 contents of the current folder. The information in the summary is
|
|
1249 automatically updated as changes are made to the current folder. An
|
|
1250 arrow @samp{->} appears to the left of the line summarizing the current
|
|
1251 message. The variable @code{vm-auto-center-summary} controls whether VM
|
|
1252 will keep the summary arrow vertically centered within the summary
|
|
1253 window. A value of @code{t} causes VM to always keep the arrow
|
|
1254 centered. A value of @code{nil} (the default) means VM will never
|
|
1255 bother centering the arrow. A value that is not @code{nil} and not
|
|
1256 @code{t} causes VM to center the arrow only if the summary window is not
|
|
1257 the only existing window.@refill
|
|
1258
|
|
1259 @vindex vm-summary-format
|
|
1260 The variable @code{vm-summary-format} controls the format of each
|
|
1261 message's summary. Its value should be a string. This string should
|
|
1262 contain printf-like ``%'' conversion specifiers which substitute
|
|
1263 information about the message into the final summary.
|
|
1264
|
|
1265 Recognized specifiers are:
|
|
1266 @display
|
|
1267 a - attribute indicators (always four characters wide)
|
|
1268 The first char is `D', `N', `U' or ` ' for deleted, new, unread
|
|
1269 and read messages respectively.
|
|
1270 The second char is `F', `W' or ` ' for filed (saved) or written
|
|
1271 messages.
|
|
1272 The third char is `R', `Z' or ` ' for messages replied to,
|
|
1273 and forwarded messages.
|
|
1274 The fourth char is `E' if the message has been edited,
|
|
1275 ` ' otherwise.
|
|
1276 A - longer version of attributes indicators (six characters wide)
|
|
1277 The first char is `D', `N', `U' or ` ' for deleted, new, unread
|
|
1278 and read messages respectively.
|
|
1279 The second is `r' or ` ', for message replied to.
|
|
1280 The third is `z' or ` ', for messages forwarded.
|
|
1281 The fourth is `f' or ` ', for messages filed.
|
|
1282 The fifth is `w' or ` ', for messages written.
|
|
1283 The sixth is `e' or ` ', for messages that have been edited.
|
|
1284 c - number of characters in message (ignoring headers)
|
|
1285 d - numeric day of month message sent
|
|
1286 f - author's address
|
|
1287 F - author's full name (same as f if full name not found)
|
|
1288 h - hour message sent
|
|
1289 i - message ID
|
|
1290 l - number of lines in message (ignoring headers)
|
|
1291 m - month message sent
|
|
1292 M - numeric month message sent (January = 1)
|
|
1293 n - message number
|
|
1294 s - message subject
|
|
1295 t - addresses of the recipients of the message, in a comma-separated list
|
|
1296 T - full names of the recipients of the message, in a comma-separated list
|
|
1297 If a full name cannot be found, the corresponding address is used
|
|
1298 instead.
|
|
1299 w - day of the week message sent
|
|
1300 y - year message sent
|
|
1301 z - timezone of date when the message was sent
|
|
1302 * - `*' if the current message is marked, ` ' otherwise
|
|
1303 @end display
|
|
1304
|
|
1305 Use ``%%'' to get a single ``%''.
|
|
1306
|
|
1307 A numeric field width may be specified between the ``%'' and the
|
|
1308 specifier; this causes right justification of the substituted string. A
|
|
1309 negative field width causes left justification. The field width may be
|
|
1310 followed by a ``.'' and a number specifying the maximum allowed length
|
|
1311 of the substituted string. If the string is longer than this value, it
|
|
1312 is truncated.
|
|
1313
|
|
1314 The summary format need not be one line per message but it must end with
|
|
1315 a newline, otherwise the message pointer will not be displayed correctly
|
|
1316 in the summary window.
|
|
1317
|
|
1318 You can have a summary generated automatically at startup,
|
|
1319 @pxref{Starting Up}.@refill
|
|
1320
|
|
1321 @vindex vm-follow-summary-cursor
|
|
1322 All VM commands are available in the summary buffer just as they are in
|
|
1323 the folder buffer itself. If you set @code{vm-follow-summary-cursor}
|
|
1324 non-@code{nil}, VM will select the message under the cursor in the
|
|
1325 summary window before executing commands that operate on the current
|
|
1326 message. Note that this occurs @emph{only} when executing a command
|
|
1327 from the summary buffer window.@refill
|
|
1328
|
|
1329 @node Miscellaneous,, Summaries, Top
|
|
1330 @chapter Miscellaneous
|
|
1331
|
|
1332 Here are some VM customization variables that don't really fit into the
|
|
1333 other chapters.
|
|
1334
|
|
1335 @table @code
|
|
1336 @vindex vm-confirm-quit
|
|
1337 @item vm-confirm-quit
|
|
1338 A value of @code{t} causes VM to always ask for confirmation before
|
|
1339 ending a VM visit of a folder. A @code{nil} value means VM will ask
|
|
1340 only when messages will be lost unwittingly by quitting, i.e. not
|
|
1341 removed by intentional delete and expunge. A value that is neither
|
|
1342 @code{nil} nor @code{t} causes VM to ask only when there are unsaved
|
|
1343 changes to message attributes or message will be lost.
|
|
1344 @vindex vm-berkeley-mail-compatibility
|
|
1345 @item vm-berkeley-mail-compatibility
|
|
1346 A non-@code{nil} value means to read and write BSD @i{Mail(1)} style Status:
|
|
1347 headers. This makes sense if you plan to use VM to read mail archives
|
|
1348 created by @i{Mail}.
|
|
1349 @vindex vm-gargle-uucp
|
|
1350 @item vm-gargle-uucp
|
|
1351 A non-@code{nil} value means to use a crufty regular expression that
|
|
1352 does surprisingly well at beautifying UUCP addresses that are substituted
|
|
1353 for %f and %t as part of summary and attribution formats.
|
|
1354 @vindex vm-mode-hooks
|
|
1355 @item vm-mode-hooks
|
|
1356 A non-@code{nil} value should be a list of hook functions to run when a
|
|
1357 buffer enters vm-mode. These hook functions should generally be used to
|
|
1358 set key bindings and local variables. Mucking about in the folder
|
|
1359 buffer is certainly possible, but it is not encouraged.
|
|
1360 @vindex vm-delete-empty-folders
|
|
1361 @item vm-delete-empty-folders
|
|
1362 A non-@code{nil} value for this variable causes VM to remove empty (zero
|
|
1363 length) folder files after saving them.
|
|
1364 @vindex vm-mutable-windows
|
|
1365 @item vm-mutable-windows
|
|
1366 This variable's value controls VM's window usage. A value of @code{t} gives VM
|
|
1367 free run of the Emacs display; it will commandeer the entire frame for
|
|
1368 its purposes. A value of @code{nil} restricts VM's window usage to the window
|
|
1369 from which it was invoked. VM will not create, delete, or use any other
|
|
1370 windows, nor will it resize its own window. A value that is neither @code{t}
|
|
1371 nor @code{nil} allows VM to use other windows, but it will not create new ones,
|
|
1372 or resize or delete the current ones.@refill
|
|
1373 @vindex mail-yank-hooks
|
|
1374 @item mail-yank-hooks
|
|
1375 Value should be a list of functions to be called after a message is
|
|
1376 yanked into a @samp{*mail*} buffer via @code{vm-yank-message}. When
|
|
1377 each hook function is called, point will be at the beginning of the
|
|
1378 yanked text and mark at the end.
|
|
1379
|
|
1380 This is not a VM specific variable, but rather an external variable that
|
|
1381 VM honors so that citation packages such as @i{SUPERCITE} can be
|
|
1382 used with VM.
|
|
1383 @end table
|
|
1384
|
|
1385 @node Key Index, Command Index, Top, Top
|
|
1386 @unnumbered Key Index
|
|
1387 @printindex ky
|
|
1388
|
|
1389 @node Command Index, Variable Index, Key Index, Top
|
|
1390 @unnumbered Command Index
|
|
1391 @printindex fn
|
|
1392
|
|
1393 @node Variable Index, , Command Index, Top
|
|
1394 @unnumbered Variable Index
|
|
1395 @printindex vr
|
|
1396
|
|
1397 @summarycontents
|
|
1398 @contents
|
|
1399 @bye
|