Annotation of 43BSDReno/contrib/mh/miscellany/emh/emh.doc, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.