|
|
1.1 root 1: [ emh.doc - Fri Oct 7 11:26:35 1983 - another interface to MH - /mtr ]
2:
3:
4: The emh package is yet another emacs-based interface to the Rand MH
5: system. The notion behind emh is that you never wait for a command
6: to finish -- you tell emh to start a command, and then at a later
7: time, emh will tell you what happened. Further, emh doesn't try
8: to make emacs into a powerful environment to access MH. Instead,
9: emh adds some basic front-end facilities for MH that allows you do
10: simple things with mail while running emacs. In short, the emh
11: philosophy is to provide a fast mail handling capacity that doesn't
12: slow down your other editing tasks. This gives emh a much
13: different "feel" than Brien Reid's MHE package.
14:
15:
16: Getting Started
17:
18: emh is composed of a few MLisp files that get loaded in when you
19: need them. If you have the directory where these files are kept in
20: your $EPATH envariable, then you can use
21:
22: ESC-X load emh.ml
23:
24: to load the bootstrap in. If you don't have this directory in your
25: $EPATH envariable, then you can use the "emh" shell script. This
26: script defines your $EPATH envariable appropriately, and then
27: invokes emacs, telling it to load the emh.ml file.
28:
29:
30: Command style
31:
32: All emh commands do not prompt you for arguments when invoked from
33: the keyboard. However if you want to be asked for additional
34: arguments, you can use the ^U- prefix. For example, by default
35: ^X-r will read mail from your +inbox folder. By using ^U-^X-r, you
36: will be asked which folder should be used to read mail from.
37:
38: Most emh commands do not take effect immediately. Instead, they
39: start a background process, and report back when that process
40: finishes. This allows you to continue doing other editing work.
41: When emh reports on the status of a completed activity, it pops up
42: a new window on your screen. To prevent confusion, you will never
43: be placed in this window. Instead, the context will remain the
44: window that you were using when the process terminated.
45:
46:
47: Buffers
48:
49: The buffers that emh creates for your use come in several
50: varieties. You can determine what the rules are for using a buffer
51: by looking at its mode-string. This is displayed in the mode-line
52: for each window. Further, the mode-line may contain additional
53: information for you.
54:
55: Listings
56:
57: mode: (emh)
58:
59: buffers: MH help, all scan listings, all message listings
60:
61: comments: In emh mode, there is a special keymap interpreting
62: your commands. The commands available to you are described in
63: the "emh mode commands" section. When you enter a keystroke
64: in such a buffer, the command that gets invoked uses the
65: folder associated with the buffer for its execution context.
66:
67: Folder List
68:
69: mode: (Normal)
70:
71: buffers: MH folders
72:
73: comments: This buffer contains the results of the list
74: folders command. There is no special interpretation of its
75: contents.
76:
77: Message Drafts
78:
79: mode: usually (Text)
80:
81: buffers: all compose, forward, and reply drafts
82:
83: comments: After mh has built a draft buffer for you, you edit
84: the message draft. You can automatically have these buffers
85: created in a special mode (see the "Customization" section).
86: ^X-^S is bound in these buffers to send the draft.
87:
88: Process Handling
89:
90: mode: (status: "condition"), "condition" is usually Running
91: or Exited
92:
93: buffers: any buffer that emh is using to run an asynchronous
94: command
95:
96: comments: You never edit anything in these buffers. They are
97: manipulated solely by emh.
98:
99:
100: Top level commands
101:
102: The emh package provides three commands that are defined globally
103: for you.
104:
105: Listing Folders
106:
107: Keystrokes: ^X-f
108:
109: Arguments: By default, all of your folders are listed. If
110: you use the ^U- prefix, then you will be asked to supply
111: options for the MH folders command.
112:
113: Function: A listing of all of your MH folders is started. When
114: the folder listing is completed, it will appear on your
115: screen.
116:
117: Reading Mail
118:
119: Keystrokes: ^X-r
120:
121: Arguments: By default, your +inbox folder is consulted. If
122: you use the ^U- prefix, then you will be asked which folder
123: should be used.
124:
125: Function: If you have already started to read mail from this
126: folder, then the scan listing generated appears on the screen
127: and you are placed in this context. If not, then a scan
128: listing is started. When the scan listing is completed, it
129: will appear on your screen. To perform actions in the context
130: of this folder, place the cursor in this window. [N.B.: This
131: command does incorporate mail from your maildrop. Use the
132: incorporate mail command for that.]
133:
134: Incorporate Mail
135:
136: Keystrokes: ^X-i
137:
138: Arguments: By default mail is incorporated from your MH
139: maildrop to your +inbox folder. If you use the ^U- prefix,
140: then you will be asked to specify the folder that should be
141: used, and the maildrop that should be used (such as a packed
142: file).
143:
144: Function: The inc command is started. When inc finishes, if
145: there was mail to incorporate then a new scan listing is
146: started. Otherwise a process buffer summarizing the results
147: of inc's execution appears on the screen.
148:
149: Sending Mail
150:
151: Keystrokes: ^X-m
152:
153: Arguments: By default, your components file is used as the
154: skeleton for the message draft. If you use the ^U- prefix,
155: then you will be asked which file should be used.
156:
157: Function: A draft buffer is created and appears on the
158: screen. [N.B.: Unlike every other emh command, this command
159: will place you into the buffer IMMEDIATELY.] You now edit the
160: message draft in any fashion you wish. When you are ready to
161: send the draft, use ^X-^S. This makes the draft buffer
162: disappear from the screen. The posting process for the
163: message draft is now started. When the posting process has
164: finished, a process buffer summarizing the results of the
165: posting appears on the screen. If the message draft was
166: successfully posted, the draft buffer is removed. Otherwise,
167: the message draft is NOT removed. You can fix the problems,
168: and try again (using ^X-^S). Inside the process buffer, ^X-@
169: is bound to a function that will make the message draft appear
170: on your screen.
171:
172:
173: emh mode commands
174:
175: When you are in a buffer in emh mode, a special keymap is used.
176: Only the printing-characters is affected, the bindings of the
177: control-characters default to the global keymap. Most printing
178: characters are bound to "illegal-operation", which means that emacs
179: will beep at you if you use them. The commands available in emh
180: mode allow you to handle messages within an individual folder.
181:
182: Most of the commands reference the current message. The current
183: message is denoted in the folder's scan listing as having a '+'
184: after the message number. As you would expect the previous message
185: is the one on the line directly above the current message, and the
186: next message is the one on the line directly below the current
187: message. To change the current message, use the usual emacs cursor
188: motion commands (^N and ^P) and then invoke an mhe mode command.
189: When the command finishes, the '+' will be updated. Only two
190: mhe mode commands do not update the current message, the delete and
191: move message commands.
192:
193: Display [Current, Next, Previous] Message
194:
195: Keystrokes: s (also S) for cur message, n (also N or ^F) for
196: next message, p (also P or ^B or ^H) for prev message
197:
198: Arguments: By default, no special arguments are given to
199: show. If you use the ^U- prefix, then you will be asked to
200: supply options for the MH show command.
201:
202: Function: A listing of the current (or next, or prev) message
203: is started. When the listing is completed, it will appear on
204: your screen.
205:
206: Compose Message
207:
208: Keystrokes: c (also C)
209:
210: Comments: This is identical to the send mail command.
211:
212: Forward Current Message
213:
214: Keystrokes: f (also F)
215:
216: Arguments: By default, no special arguments are given to
217: forw. If you use the ^U -prefix, then you will be asked to
218: supply options for the MH forw command. This is useful if you
219: wish to forward more than one message in the message draft.
220: You can give a message list as the additional arguments to
221: forw.
222:
223: Function: A draft buffer for the current message is prepared
224: in forwarding format. When the message draft is completed,
225: it will appear on your screen. You then edit the draft buffer
226: and use ^X-^S to send the message draft. Inside the draft
227: buffer, ^X-@ is bound to a function that will make the message
228: being forwarded appear on your screen.
229:
230: Reply to Current Message
231:
232: Keystrokes: r (also R)
233:
234: Arguments: By default, no special arguments are given to
235: repl. If you use the ^U -prefix, then you will be asked to
236: supply options for the MH repl command.
237:
238: Function: A draft buffer for the current message is prepared
239: in reply format. When the message draft is completed,
240: it will appear on your screen. You then edit the draft buffer
241: and use ^X-^S to send the message draft. Inside the draft
242: buffer, ^X-@ is bound to a function that will make the message
243: being forwarded appear on your screen.
244:
245: Delete Current Message
246:
247: Keystrokes: d (also D)
248:
249: Arguments: By default, no special arguments are given to rmm.
250: If you use the ^U -prefix, then you will be asked to supply
251: options for the MH rmm command.
252:
253: Function: The scan listing for the current folder is updated.
254: If the current folder is read-only, then nothing else happens.
255: Otherwise, the rmm command is started. When rmm finishes, if
256: it was successful, nothing happens. Otherwise, a process
257: buffer summarizing the results of rmm's execution appears on
258: the screen.
259:
260: Move Current Message
261:
262: Keystrokes: m (also M)
263:
264: Arguments: You are prompted for the name of the destination
265: folder. By default, no special arguments are given to file.
266: If you use the ^U- prefix, then you will be asked to supply
267: options for the MH file command.
268:
269: Function: The scan listing for the current folder is updated.
270: The file command is started (if the current folder is
271: read-only, then -link is used, otherwise -nolink is used).
272: When file finishes, if it was successful, nothing happens,
273: Otherwise a process buffer summarizing the results of file's
274: execution appears on the screen.
275:
276: Incorporate New Mail
277:
278: Keystrokes: i (also I)
279:
280: Comments: This is identical to the incorporate mail command.
281:
282: Display Help
283:
284: Keystrokes: ? (also h or H)
285:
286: Arguments: none
287:
288: Function: A buffer summarizing the top level and emh mode
289: commands appears on your screen.
290:
291:
292: Customization
293:
294: At present, the emh package contains two hooks for user
295: customization.
296:
297: Loading Customizations
298:
299: When emh is loaded, emacs will look for a file called
300: "emh-custom.ml" and try to load its contents. This is done
301: after everything has been set-up, just at the end of emh's
302: initialization.
303:
304: Automode for Message Drafts
305:
306: When a draft buffer has been built, but before it appears on
307: your screen, emh will see if a variable called
308: "&mh-draft-automode" exists. If so, the contents of this
309: variable is executed. If not, then the default text-mode is
310: invoked. Hence, if you have a text mode that you like to use
311: on message drafts, you can have emh invoke this mode for you
312: in the context of the draft buffer. Including something like
313:
314: (declare-global &mh-draft-automode)
315: (setq &mh-draft-automode "(my-text-mode)")
316: (autoload "my-text-mode" "my-text-mode.ml")
317:
318: in your emh-custom.ml file would place each draft buffer in
319: my-text mode.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.