[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why `woman'? Why not make `man' better?

From: Robert Thorpe
Subject: Re: Why `woman'? Why not make `man' better?
Date: 21 Dec 2006 05:10:37 -0800
User-agent: G2/1.0

Ronald wrote:
> I think it's better to use one inside or outside Emacs.

I find them both fairly much equivalent.

Some background...
In the 1950s(!) a typesetting system called roff was invented.  At Bell
labs they wrote a version called troff for their systems that typeset
documents for their teleprinter machines in the 70s. They used that
version in Unix.  They decided also to use it for the documentation
system for Unix, for that they made a version that outputted to a
terminal instead of to a printer, this is nroff.  The man program uses

Much later the GNU folks made clones of both troff and nroff.  The
clone worked slightly differently, the groff program performed the
functions of both troff and nroff.  But effectively it was just a
slightly better version of the original tools.

In Emacs what M-x man does is:-
* Calls man in the background
* man renders the pages using groff (by loading a library containing
* Pipes the result to sed to remove some formatting
* Pipes the result to awk to remove some more formatting
* Emacs displays the results.
This process is not particularly efficient, it uses lots of processes.
Also groff spends time creating markup that Emacs later removes with
sed because it doesn't need it.  Generally M-x Man is fast enough for
small manpages, and if you have a fast machine.  Some long pages though
take some time.

As a response to this WoMan was written.  WoMan is an implementation of
nroff within Emacs.  In fact it only implements enough of nroff to
render man pages. In the past the speed difference was quite noticable,
with the faster machines of today it's much less significant.

Some people have reported that WoMan gets some MacOSX man-pages wrong,
but I don't know about that.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]