mh-e: Files and Pipes
6.7 Files and Pipes
===================
MH-E does offer a couple of commands that are not a part of MH. The
first one, ‘>’ (‘mh-write-msg-to-file’), writes a message to a file.
You are prompted for the filename. If the file already exists, the
message is appended to it. You can also write the message to the file
without the header by specifying a prefix argument (such as ‘C-u >
/tmp/foobar <RET>’). Subsequent writes to the same file can be made
with the command ‘!’ (‘mh-refile-or-write-again’).
You can also pipe the message through a Unix shell command with the
command ‘|’ (‘mh-pipe-msg’). You are prompted for the Unix command
through which you wish to run your message. If you give a prefix
argument to this command, the message header is included in the text
passed to the command (the contrived example ‘C-u | lpr’ would be done
with the ‘l’ command instead).
If the message is a shell archive ‘shar’ or has been run through
‘uuencode’ use ‘X s’ (‘mh-store-msg’) to extract the body of the
message. The default directory for extraction is the current directory;
however, you have a chance to specify a different extraction directory.
The next time you use this command, the default directory is the last
directory you used. If you would like to change the initial default
directory, customize the option ‘mh-store-default-directory’, change the
value from ‘Current’ to ‘Directory’, and then enter the name of the
directory for storing the content of these messages.
By the way, ‘X s’ calls the Emacs Lisp function ‘mh-store-buffer’. I
mention this because you can use it directly if you’re editing a buffer
that contains a file that has been run through ‘uuencode’ or ‘shar’.
For example, you can extract the contents of the current buffer in your
home directory by typing ‘M-x mh-store-buffer <RET> ~ <RET>’.