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