EXMH REFERENCE
exmh-ref - A detailed reference to exmh functions.
This man page gives complete, but terse, information about Exmh.
There are just a handful of command line options for exmh. Note that
Xt-like command line options are not supported because exmh
is based on Tk, not Xt.
- -bgAction action
- Override background processing setting. Valid actions are: off,
count, msgchk, flist, and inc.
- -bgPeriod minutes
- Override background period setting.
- -geometry geometry
- Initial geometry to use for the window. Exmh remembers the geometry
when you change it interactively, so you do not really need to specify
it each time on the command line.
- -iconposition geometry
- Initial position to use for the icon in the form +xoff+yoff.
You can use minus signs instead of + to position relative to the right
and bottom of the screen.
- -iconic
- Begin execution iconic.
- -nofaces
- Do not use faces database during this run.
- -sedit
- Override the editor command defined in Preferences and use the
built-in editor (sedit) instead.
- folder
- It the argument is not one of the flags given above, it is assumed
to be the name of a folder. In this case exmh begins in that
folder.
There are three sets of buttons in exmh, the main, or top row, folder
operations, and message operations. The main set has global commands:
Log, Help..., Bindings..., Address..., Preferences, and Quit.
- Help...
- Help is a menu with several choices:
- Quick Intro
- This provides a useful sub-set of this man page.
- Color Legend
- This provides a highlighting key for color or monochrome screens.
- HTML Docs
- This provides access to all the exmh documentation.
- Frequently Asked Questions
- This displays a Frequently-Asked-Questions file. It has the same
info as the help.FAQ file.
- Exmh Mailing Lists...
- This is a sub-menu that lets you administer your membership in
the exmh-related mailing lists. See the About menu entry for an explaination
of the various mailing lists. The add/remove operations result in mail
messages. You'll need to Send the draft messages.
- Submit Bug Report
- A mail message is started so you can report a problem with exmh.
- Register as an EXMH User
- A mail message is started to you can register as an exmh user.
There is an opportunity to sign up for the mailing lists and provide
positive and negative feedback about exmh.
- Pgp Setup
- Get started with PGP. There is some help text and an interface
to create your public key / private key pair.
- Bindings...
- Exmh has two sets of key bindings. One for simple editting, and
another to invoke commands. The editting bindings are used in the simple
editor and in the various text entry widgets. The command bindings
are in effect otherwise, and they allow you to invoke various Exmh
commands without using buttons or menus. This is a menu with three
choices:
- Commands
- This brings up a dialog that lets you edit the keystroke bindings.
All of the defined bindings are displayed, and you can edit their associated
keystroke in place. Use the entry to the right of each command to alter
or add key bindings. There are further directions in the dialog box.
- Simple Edit
- These bindings result in class definitions for the Entry and Text
widget classes. The default bindings are Emacs-like. See the Tk man
page on the bind command for details about the syntax, if you need
to. In Tk versions 3.3 and later, "Meta" is an ok synonym for "Mod1".
To emulate Emacs, any keystroke that is defined to be <Meta-x>
will also result in a binding for <Escape>x.
- Compose Key
- The compose key is used to insert 8-bit characters. This dialog
shows you the key sequences used to get special characters. You can
define which key maps to Compose in the Simple Edit bindings dialog.
- Log
- If you have enabled the debug log under the Hacking Support preferences
section, then this button appears. It displays the debug log.
- Address...
- This is a menu to with the following entriesMH
- Aliases
- This displays an interface to the MH alias file. You will be prompted
to set up the MH profile entry that names the alias file, if needed.
There are a pair of lists in the interface. To the left is a list of
your aliases. Selecting one will display the address(s) of the alias
in the right-hand list. Under each list are three buttons: Insert,
Change, and Delete, that let you operate on the aliases or the addresses
associated with an alias. As you view messages, the From address of
the current message is displayed in the dialog. There is a Help button
in the dialog that gives more tips about using it.
- Address Book
- This is a user interface onto all the email addresses exmh has
saved for you. You can update the address information, delete addresses,
and view the last message from a person. You can save them automatically
or on demand. See the Address Database preferences. Within the built-in
editor a <Control-Tab> does pattern matching against saved addresses.
- Preferences
- This displays a dialog that lets you customize exmh. There
is also a different Help button in the Preference dialog that explains
how to make selections and get more info. In particular, you can click
on the descriptive label for an item to get a popup with more detailed
information on the preference item.
- Quit
- This quits exmh. If there are pending changes to draft messages,
they are saved first.
The middle set of buttons has folder commands: New, Flist, Inc, Commit,
Search... and More...
- New
- This pops up a dialog box from which you can create new folders.
When entering a folder name, the '@' character is short for the current
folder name. Note that the Delete folder operation is under the More
menu.
- Flist
- The Flist button refreshes the color feedback of folder buttons
so you can tell which folders have unseen messages in them. If you
use presort inc style, then this is done automatically. However, if
you read all the unseen messages in a folder from outside exmh,
then it will miss the transition out of the unseen state, so the Flist
button will help reset its view of the folder state.
- Inc
- The Inc button will incorporate new mail from your spool file into
your mail folders. This command is also bound to the keystroke 'i'.
- Commit
- The Commit button causes pending delete and move operations to
occur. This command is also bound to the keystroke <Control-Return>.
Know that messages marked for deletion are removed by means of the
MH rmm command. In most systems, rmm will rename the
message to a name begining with either a comma (,) or pound sign (#).
Unlike xmh, exmh requires that you commit changes before changing
folders and doing other operations that modify the scan listing (e.g.,
Pack, Sort, Rescan). However, you can set Auto Commit under the Scan
Listing preferences to have exmh automatically commit changes when
needed. See also the description of the "Purge Folder" operation.
- Search...
- This is a menu of different search methods. The first two operations
use a simple Find dialog. The Pick and Glimpse interfaces have their
own dialogs. The menu entries under Search... are:
- Search help
- This help text describes the search methods in more detail.
- Current message
- Enter a string to find in the current message. <Return> causes
the search to begin. <Control-s> and <Control-r> cause
subsequent forward and reverse searches, respectively.
- Folder table of contents
- This search is done by scanning the folder table of contents display,
so it only hits on the current folder scan output. Select the All button
to select all matching messages. Use Pick for more general searching.
- All messages in current folder (pick)
- This provides an interface to the MH pick command. Begin
by chosing from the "pick attribute" menu in the dialog. These include
headers like Subject, From, To, and Cc, as well as date criteria like
Before, and After. You can search for a string in the body of messages
with the "Search" field. You can enter a pattern for any of these,
and pick selects messages that satisfy the logical AND of these
pattern specifications. Note that the Before and After patterns are
date-specific, and pick understands many forms of date patterns.
Read the MH man page on pick for the complete story. You can
build up more complex logical search expressions by clicking the Or
button.
- Pick from Seq/msgs(s)
- This entry lets you limit pick to a specific set of messages.
In particular, you can specify a sequence name (e.g., "unseen"), and
have pick find all messages with that sequence identifier. After the
pick completes, a range of messages is selected that satisfies the
search, and you can operate on these messages as described below.
- Add
to Sequence(s)
- This entry lets you apply a sequence name to the set of messages
that are selected by the search. You can select these later by using
the "Pick from Seq" field.
- Add to Sel
- This button is part of the pick interface. Set this before
the pick to add the results of the pick to whatever message range is
already selected in the table of contents. Otherwise a new selection
is made.
- New FTOC
- This button is part of the pick interface. It causes the
table of contents to be replaced with the set of currently selected
messages. These can be the result of a pick, or you can just make a
selection with the mouse. Warning: after projecting a new table
of contents, a subsequent pick will only find things in this
limited table of contents.
- Mark Seen
- This button is part of the pick interface. Use this to remove
the selected messages from the unseen sequence.
- All messages in all folders (glimpse)
- This brings up an interface to the Glimpse text index tool. You
must first index your mail, so to get started click "index" to build
your indexes. This process runs in the background, and the status of
the index process is displayed in the Glimpse log. The storage overhead
of the indexes is about 10% to 15%, which is quite good for a full
text index system. To search, enter a word in the search area and press
"Search". The button changes to a "Stop" button, although the stop
may take a moment to take effect. The search results are displayed
in the log. Click on the message in the log and exmh will visit that
message. For more details, see the exmh-use man page.
- Display related messages
- This selects messages that have the same subject as the current
message, or that are "in-reply-to" the current message. The folder
table of contents is replaced by one that only lists the related messages.
- More...
- This is a menu with more folder operations in it:
- Rescan folder
- Rescan forces a rescan of the folder contents. Exmh maintains
a cache of the scan output that could get confused. The Rescan button
forces a full scan. If you just want to scan the new messages that
have arrived in the folder you are currently reading, it is more efficient
to click on the folder's label in the top pane. This will invoke a
scan merging procedure that attempts to preserve the cached results
of previous scans. You should only need Rescan when you have reason
to believe that exmh is out of sync.
- List only selected messages
- This changes the table of contents to list only the selected messages.
This is useful after a pick or table of contents search that has highlighted
several messages throughout the folder. You must use Rescan folder
to get the full listing back.
- Pack folder
- This will renumber messages in the current folder to eliminate
any gaps in the number sequence.
- Sort folder
- This is a cascade menu that provides different ways to sort your
folder: by date, by subject, and by the sender. The subject and sender
sorts also do some grouping by date so that messages from one person
or about one subject may be grouped into several subgroups based on
their age. See the MH sortf command manual page for details.
- Find all folders
- This refreshes the display of folder buttons, and it will pick
up any new folders you have created. This currently uses the MH command
"folders -fast -recurse", which can be slow. The results are saved,
so you should not need to wait for this scanning unless you change
your folder structure. (You can also edit the .folders file in your
MH mail directory.) The exmh distribution comes with a two-line
patch for the MH folders program that speeds it up considerably. This
is found in the misc/folder.patch file.
- Delete folder
- This lets you delete a folder. The folder must be empty, except
for .xmhcache, .mh_sequences, and any .nfs junk files.
- Catch-up Unseen
- This clears the unseen sequence from the current folder.
- Update scan caches
- This runs another process in the background to update any scan
caches that are out of date.
- Update all scan caches
- This runs another process in the background to update all the scan
caches.
- Purge folder
- When MH deletes a message it really only renames it to have a name
like #N or ,N if it was message N. The Purge operation will clean up
these junk files that are older than 7 days. (This age parameter can
be adjusted by a Preference item under the MH Tweaks section.)
- Purge all folders
- This runs through all your folders deleting old junk files. This
is done in the background so you can continue to use the user interface
during the process.
- Import mailbox folders
- If you use a program like Elm or Sun's Mailtool, you can import
their message folder contents into the format used by MH. This menu
entry brings up a dialog that lets you do this. After you specify the
directory that contains the mail folders, a display with a checkbutton
for each folder is created. You can select which folders to import.
The originals are left alone, so you'll have to delete them yourself
after you import them into MH.
- Audit
- This is a cascade menu entry that lets you either view the audit
summary statistics or the current audit log. Note that the audit log
is appended into ~/Mail/.exmhaudit when you quit exmh.
- Re-read MH Profile
- If you change something important in your MH profile, you can get
exmh to reprocess it with this operation.
The last set of commands are message operations. Several of these work
in a batch fashion on all the messages in a selected set. These include
Delete, Move, Link, Forward, Unmark, and Print. Some of these buttons
and menu entries are disabled if there is no current message. Disabled
actions have their text greyed out.
- Forward
- Forward the current message(s). Also keystroke 'f'.
- Send
- Compose a mail message. Chose the editor to use via the Preferences
dialog. Also keystroke 'c' (for "compose").
- Prev
- Move to the previous message. Also keystroke 'p'. Keystroke 'P'
changes the current message without displaying it. Use 's' to display
such a message.
- Next
- Move to the next message. This will chain to the next folder with
unread messages if you are at the end of the current folder. The "Next"
folder is defined by the Folder-Order .mh_profile entry, and it is
always the first folder in the order that has unseen messages. (This
keeps you in the interesting folders and away from the dregs if you
organize your Folder-Order properly.) Also keystroke 'n'. Keystroke
'N' changes the current message without displaying it. Keystroke 'F'
changes to the next folder with unseen messages.
- Delete
- Mark the current message(s) for deletion and go to the next message.
Also keystroke 'd'. If you change your mind, select the message again
and "Unmark" it via the entry under the message More... menu.
- Move
- Mark the selected message(s) to be moved to the target folder and
go to the next message. Also keystroke 'm'. Note that selecting a target
folder also moves the current message(s). So, you use the Move button
if the correct target folder is already selected. If you make a mistake
and want to move the message to a different folder, just select it
again and right click on the proper destination folder. If you don't
want to move it at all, then "Unmark" the message.
- Link
- Similar to move, except that the message is linked into the other
folder so that it appears in both places. While this appears like a
copy, the same message is shared between the folders to save disk space.
- Reply...
- This is a menu of reply options. By default there are two choices,
but you can easily define more variations on reply. The default choices
are:
- Reply to sender <Key-r>
- Reply to the current message, only to the person that send the
original. Also keystroke 'r'.
- Reply all <Key-R>
- Reply to the current message, including on the cc line everyone
that got the original message. (It invokes MH repl with: -cc
cc -cc to). Also keystroke 'R'.
- Reply help
- This pops up a display that tells you how to program new reply
buttons. You'll need to be familiar with the MH repl command and its
filters. Check out the repl and mh-format manual pages.
- More...
- This is a menu of more message operations.
- Print
- Print the current message, or the selected set of messages. The
print command is defined via the Preferences dialog. The whole message
is printed, headers and all.
- Unmark (Undo)
- Cancel a move or delete mark on the selected message(s). Also keystroke
'u'.
- Clip
- Display a new toplevel window containing the current message.
- First Unseen
- Display the first unseen message, if any. Also keystroke 'U'.
- Burst Digest
- Use the MH burst command to split up a digest message into
its individual messages. In addition, the new messages are added to
the unseen sequence. You can control whether or not the orignal message
is replaced with just the digest header by specifying burst options
in your .mh_profile. (E.g., "burst: -inplace").
- Redistribute
- This uses the MH dist command to resend a message to a different
recipient. Your editor is invoked with a small buffer containing only
Resent-To: and Resent-Cc: lines.
- Save to file
- This simply copies the current message(s) to a file selected via
the file selector dialog.
- Use message as draft
- This copies the current message into the drafts folder and opens
your editor on the message.
- Edit message
- This opens your editor on the message so that you can annotate
it.
- uudecode message
- This simple runs uudecode with the current message as input. A
file selection dialog lets you choose the name of the resulting file.
- Print postscript content
- This is useful for non-MIME messages that contain a postscript
file. The message body (everything from the initial %!PS onwards) is
put into a temp file and then the Preferences Postscript Print Command
is used to print that file.
- Apply command to message
- This runs a UNIX command over the current message (all of it).
A dialog lets you set the command, with occurrences of $file replaced
with the pathname of the message. The default value of the UNIX command
is hiding under the Print preferences entry.
- Apply command to body
- This runs a UNIX command over a temporary file containing the body
of the current message.
- Mark Unseen
- This puts the current message(s) back into the unseen sequence.
- PGP Encrypt
- Replace the current message with an encrypted version of it.
- old PGP...
- This is a menu of operations that apply to PGP messages that are
not wrapped up in a MIME format. Those are handled automatically. This
menu is used to tell exmh explicitly what to do. You can Decrypt, View,
or Extract Keys.
- Scan for URLs
- Scan through the message body and look for URL and URN references.
If any are found, they are highlighted and made into active text. Click
on the text and Mosaic will be started on that URI. You can set the
command to use via the URI preferences section. Also keystroke 'z'.
- View selected URL
- If you have manually selected an embedded URL, then use this menu
entry to get exmh to ask your web browser to display the selected URL.
If the automatic scanning doesn't work perfectly, you can do a manual
selection on top of an incorrect active text button.
- Concatenate partial messages
- If you get a message in parts, as a MIME type message/partial,
then select all the messages that have the parts and invoke this operation.
- Automatic Refile
- Choose a folder for the current message based on the from address.
- Post this message to a Newsgroup
- Post a copy of the current message to a newsgroup. You'll be prompted
for what group.
The built-in editor, sedit, has a dozen or so commonly used
editing operations bound to keystrokes. These are Emacs-like, but you
can change them from within the editor through the "Simple Edit" dialog
available under the main "Bindings" menu. In addition, the editor has
a number of buttons and menu entries used to manipulate your draft
messages.
- Abort
- This deletes the draft message and removes the editor window.
- Save&Quit
- This will save the message and quit the editor window. The idea
is that you will come back to the draft via the drafts folder later.
- Help
- This button brings up a window with a short explanation of the
editor.
- Quote
- This is only active while you are replying to a message. When you
are replying to a message, the file named "@" is a symbolic link to
the message to which you are replying. When this file is inserted,
it is formatted a bit, unlike the Insert File... operation. The mail
headers are stripped off, quoted-printable text is decoded so you get
8-bit characters in the edit buffer, and each line is prefixed with
a short string to distinguish the inserted lines. You can set this
prefix via an Xresource, replPrefix. The default prefix is "> ".
If you want to change this and still have trailing blanks, it turns
out this works ok. The resource value seems to begin with the first
non-blank character, but then extends all the way to the newline character.
- Sign
- This appends your ~/.signature file to the draft. If this file
is instead an executable script or program, it is executed in order
to generate the signature.
- Sign...
- If you have multiple files that match the ~/.signature* pattern,
the Sign button is replaced with a menu of possibilities. If you choose
the autoSign Simple Editor Preference, then this menu is used to choose
which signature file (or program) is used when automatically signing
the message as it gets posted.
- Send
- When you are done with the message, click Send. This is also bound
to the keystroke <Control-c><Control-c>.
- Text...
- This menu is used to add bold, italic, underline, etc. to your
messages. This results in a MIME message of type text/enriched. The
formatting commands are supposed to be palatable to a non-MIME reader,
but you may want to take this into consideration. If you disable the
"Format mail" setting (described below), the looks are discarded before
sending the message.
- More...
- This menu contains a few entries for less common operations. They
are:
- Keep on send
- This is a checkbox menu item that is off (un-highlighted) by default.
If selected it prevents the editor window from disappearing after you
send or abort a message. This is useful if you'd like to compose a
few similar messges. (I also use it to debug the enriched text formatter.)
- Format mail
- This is a submenu of formatting options. The first three options
are mutually eclusive and determine when and how the text in your message
is formatted to fit into standard lenght lines. The choices are:
- No Line Breaking
- Don't do any formatting at anytime.
- Line Break at Send
- Post process the message after you hit the send button to break
long lines.
- Line Break when Typing.
- At each keystroke check to see if the current line is too long,
wrapping it if necessary. If you use this then you should know about
the "format" command that reformats a paragraph. By default, that
is bound to <Meta-q>
- Attempt mhn
- If this is selected, your message is run through mhn in
order to expand any # directives that format a MIME mesage. See also
the "Run mhn now" menu entry below, and see the mhn man page
for details.
- Quote Printable
- If this is selected, then any text MIME parts are run through the
quoted-printable encoder to wrap up 8-bit characters in a 7-bit safe
encoding. The Quoted Printable default preference setting under Simple
Editor can be set to automatic, never, or always. In automatic mode,
quoting is enabled when you enter a Compose key sequence to generate
an 8-bit character.
- Run mhn nowThis processes the message assuming you have mhn directives,
and then lets you edit the result.
- Cite Selection
- This formats and inserts the current selection. It is assumed to
be in the currently displayed mail message, and the sender of that
message is identified before the formatted text. Hint: this is the
only useful way to include text from PGP encryped messages and text/enriched
messages. The formatting of text/enriched is lost, however.
- Attachment
- This is a menu of attachment options.
- Attach File...
- This brings up a dialog box that lets you attach a file using MIME.
It tries to determine the type of the file based on nametemplate
entries in the metamail mailcap description file. It presents a dialog
that lets you override the type, add a Content-Description, and choose
an encoding for the file. When you attach the first Part of a message
you are asked whether or not to save the existing message body. If
you save it, it becomes the text/plain first part of the multipart
message.
- Insert File...
- This simply inserts a file at the current insert point.
- Attach Reference...
- This sets up an Message/External-Body MIME message part. This is
useful for sending around pointers to files available via FTP or on
your local file system.
- Attatch PGP Keys...
- Insert your PGP keys into the mail message. You can use the key
selector to choose any key in your public keyring. Just type in a pattern
that matches part of the key ID. Matching keys are displayed in the
listbox.
- Whom
- This entry displays a small window with the network addresses of
the recipients of the message. Clicking the button a second time makes
the window go away.
- Spell...
- This runs either the UNIX spell or ispell command. Choose between
these two options in the Simple Editor preferences. (Don't confuse
that with the setting under Editor Support preferences.) If you use
ispell then the draft is reloaded after ispell terminates. If you use
spell then the output of spell is put into a second pane inside the
editor window. That's all - nothing fancy.
- Find SEL
- This searches the draft for the current X selection. The intent
is that you select mispelled words in the output of the spell command
and use this menu entry to locate them in the draft. (The find and
keybinding mechanisms were stressed by this addition - expect a cleanup
someday. There is no reasonable way to define keystroke accellerators
for the find and still be able to change them in the Bind dialog. -
don't ask...).
- Save Buffer
- This saves the editor buffer into a file in your drafts folder.
Most likely you really want the "Keep on Send" function instead of
Save, because that function preserves the draft after you send it,
while ordinarily (in spite of "Save") MH will rename the draft after
you send it.
- Mime Preview
- This displays the message as it will appear when an exmh user receives
it. A detached top-level window is used, as with message Clip.
- Alternate Editor
- Save the draft and invoke your alternate editor on the message.
Define the alternate under the Editor Support preferences..
- PGP...
- This is a menu of options that use the Pretty Good Privacy package
to to encryption and authentication. An explaination of pgp is beyond
the scope of this manual. This works by inserting a header into your
message that indicates what action to do. The actual encryption or
whatever is done after you hit the Send button. If you use an external
editor you can insert the headers in that, and exmh will run your message
through PGP for you when you send it. The four supported headers are:
pgp-action: signclear
pgp-action: signbinary
pgp-action: encrypt
pgp-action: encryptsign
exmh-use, exmh,
exmh-custom, mh
welch@acm.org "Brent Welch"
To Xerox PARC/CSL, for supporting this work initially, to Sun Microsystems
Laboratories for continuing the support, and to all the exmh
users that contributed ideas and code.
[ exmh |
software |
intro |
faq |
basics |
guide ]