vmh is a program which implements the server side of
the MH window management protocol
and uses curses (3) routines to maintain a split-screen interface to
any program which implements the client side of the protocol.
This latter program, called the vmhproc,
is specified using the -vmhproc program switch.
The upshot of all this is that one can run msh on a display terminal
and get a nice visual interface.
To do this, for example, just add the line
to your .mh_profile.
(This takes advantage of the fact that
msh is the default vmhproc for vmh.)
In order to facilitate things,
if the -novmhproc switch is given,
and vmh cant run on the users terminal,
the vmhproc is run directly without the window management protocol.
After initializing the protocol,
vmh prompts the user for a command to be given to the client.
Usually, this results in output being sent to one or more windows.
If a output to a window would cause it to scroll,
vmh prompts the user for instructions,
roughly permitting the capabilities of less or more
(e.g., the ability to scroll backwards and forwards):
SPACE advance to the next windowful
RETURN * advance to the next line
y * retreat to the previous line
d * advance to the next ten lines
u * retreat to the previous ten lines
g * go to an arbitrary line
(preceed g with the line number)
G * go to the end of the window
(if a line number is given, this acts like g)
CTRL-L refresh the entire screen
h print a help message
q abort the window
(A * indicates that a numeric prefix is meaningful for this command.)
Note that if a command resulted in more than one windows worth of
information being displayed,
and you allow the command which is generating information for the window to
(i.e., you dont use the q command to abort information being sent to the
then vmh will give you one last change to peruse the window.
This is useful for scrolling back and forth.
Just type q when youre done.
To abnormally terminate vmh (without core dump),
use <QUIT> (usually CTRL-\).
this does the right thing with bbc and msh.
^$HOME/.mh_profile~^The user profile
^Path:~^To determine the users MH directory
The argument to the -prompt switch must be interpreted as a single token
by the shell that invokes vmh.
one must usually place the argument to this switch inside double-quotes.
there is no way to pass signals (e.g., interrupt, quit) to the client.
generating QUIT when vmh is reading a command from the terminal is
sufficient to tell the client to go away quickly.
Acts strangely (loses peer or botches window management protocol with peer)
on random occasions.