Editing a Draft
[previous]
[next]
[table of contents]
[index]
Note: HTML conversion may not be
complete.
There are several variables used during the draft editing phase.
Examples include changing the name of the file
that holds your signature or telling mh-e about new multimedia types.
They are:
Variable | Default | Description
____________________|____________________________|______________________
mh-yank-from-start- | t | How to yank when re-
of-msg | | gion not set
mh-ins-buf-prefix | "> " | Indent for yanked
| | messages
mail-citation-hook | nil | Functions to run on
| | yanked messages
mh-delete-yanked- | nil | Delete message win-
msg-window | | dow on yank
mh-mime-content- | (("text/plain") | List of valid con-
types | ("text/richtext") | tent types
| ("multipart/mixed") |
| ("multipart/alternative") |
| ("multipart/digest") |
| ("multipart/parallel") |
| ("message/rfc822") |
| ("message/partial") |
| ("message/external- |
| body") |
| ("application/octet- |
| stream") |
| ("application/postscript")|
| ("image/jpeg") |
| ("image/gif") |
| ("audio/basic") |
| ("video/mpeg")) |
mh-mhn-args | nil | Additional arguments
| | for mhn
mh-signature-file- | "~/.signature" | File containing sig-
name | | nature
mh-before-send- | nil | Functions to run be-
letter-hook | | fore sending draft
mh-send-prog | "send" | MH program used to
| | send messages
The following two sections include variables that customize the way
you edit a draft.
The discussion here applies to editing multimedia messages as well.
Inserting letter to which you're replying
To control how much of the message to which you are replying is yanked by
C-c C-y (mh-yank-cur-msg)
into your reply, modify
mh-yank-from-start-of-msg.
The default value of
t
means that the entire message is copied.
If it is set to
'body
(don't forget the apostrophe),
then only the message body is copied.
If it is set to
nil ,
only the part of the message following point (the current cursor
position in the message's buffer) is copied.
In any case, this variable is ignored if a region is set in the
message you are replying to.
The string contained in
mh-ins-buf-prefix
is inserted before each line of a message that is inserted into a draft with
C-c C-y (mh-yank-cur-msg).
I suggest that you not modify this variable.
The default value of
" "
is the default string for many mailers and news readers: messages
are far easier to read if several included messages have all been
indented by the same string.
The variable
mail-citation-hook
is
nil
by default, which means that when a message is inserted into the
letter, each line is prefixed by
mh-ins-buf-prefix.
Otherwise, it can be set to a function that modifies an included
citation.
(Supercite
is an example of a full-bodied, full-featured citation package.
It is in Emacs version 19.15 and in later versions, and it can be copied via
anonymous FTP from
archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/packages/sc3.1.tar.Z)
If you like to yank all the text from the message you're replying to
in one go, set
mh-delete-yanked-msg-window
to non-nil to delete the window containing the original message
after yanking it to make more room on your screen for your reply.
Inserting your signature
You can change the name of the file inserted with
C-c C-s (mh-insert-signature)
by changing
mh-signature-file-name
(default:
"~/.signature").
The variable
mh-mime-content-types
contains a list of the currently valid content types.
They are listed in the table in Section
Editing a Draft.
If you encounter a new content type, you can add it like this:
(setq mh-mime-content-types (append mh-mime-content-types '(("new/type"))))
Example vi Macros for entering enriched text showed how
vi
macros could be used to insert enriched text directives like
<bold>.
Now I'll show you how to do this in Emacs.
The following code will make, for example,
C-c C-t b
insert the
<bold>
directive.
Example: Emacs macros for entering enriched text
;; See Example Prepare draft for editing via mh-letter-mode-hook for keybindings.
(defvar enriched-text-types '((?b . "bold") (?i . "italic") (?f . "fixed")
(?s . "smaller") (?B . "bigger")
(?u . "underline") (?c . "center"))
"Alist of (final-character . directive) choices for add-enriched-text.
Additional types can be found in RFC 1563.")
(defun add-enriched-text (begin end)
"Add enriched text directives around region. The directive used
comes from the list enriched-text-types and is specified by the last
keystroke of the command. When called from Lisp, arguments are BEGIN
and END."
(interactive "r")
;; Set type to the directive indicated by the last keystroke.
(let ((type (cdr (assoc (logior last-input-char ?`) enriched-text-types))))
(save-restriction ; restores state from narrow-to-region
(narrow-to-region begin end) ; narrow view to region
(goto-char (point-min)) ; move to beginning of text
(insert "<" type ">") ; insert beginning directive
(goto-char (point-max)) ; move to end of text
(insert "</" type ">")))) ; insert terminating directive
To use the function in the Example
Emacs macros for entering enriched text,
set the mark with
C-@
or
C-SPC,
type in the text to be highlighted, and type
C-c C-t b.
This adds
<bold>
where you set the mark and adds
</bold>
at the location of your cursor, giving you something like:
You should be <bold>very</bold>.
You may also be interested in investigating
sgml-mode.
Readying multimedia messages for sending
If you wish to pass additional arguments to
mhn
to affect how it builds your message, use the variable
mh-mhn-args.
For example, you can build a consistency check into the message by
setting
mh-mhn-args
to
-check.
The recipient of your message can then run
mhn -check
on the message -- mhn will complain if the message has been
corrupted on the way.
The
C-c C-e (mh-mhn-edit)
command only consults this variable when given a prefix argument.
If you want to check your spelling in your message before sending, use
mh-before-send-letter-hook
like this:
Example: Spell-check message via mh-before-send-letter-hook
(add-hook 'mh-before-send-letter-hook 'ispell-message)
In case the MH
send(1)
program is installed under a different name, use
mh-send-prog
to tell mh-e the name.
[Table of Contents]
[Index]
[Previous: Sending Mail]
[Next: Moving Your Mail Around]
|