You can read man pages using M-x man (if you have man installed) or using M-x woman (if you don’t). See manual page for basic information, or WomanMode for the elisp-only alternative.

M-x man prepares pages in the background using the external man program, which is good for a big man page, or when the system is very slow. On the other hand, the man page will pop up seconds later, and some find that disturbing, too. (See the Man-notify-method variable for how aggressively it displays.)

What you enter for M-x man basically goes straight to the man command line, so “-l /some/file.1” can format a particular file. See ManPreview for similar on a buffer.

You can search for pages with “-k pattern” and press Ret to go to one that’s found. (A feature which has existed for quite a while, but been kept secret in the manual and docstrings!) See SystemApropos for similar as a separate command.

Formatting Width

The man program uses the MANWIDTH or COLUMNS environment variables for how wide man pages are. Emacs sets COLUMNS to the window width by default, or per the Man-width variable. You can also force a setting with

    (setenv "MANWIDTH" "72")


There’s no page name completion with M-x man, but man-completion.el or Iman are possibilities. man-completion.el can notice a Perl module name at point for the default.

You can also try the following to press the completion from WoMan into service (getting filenames instead of page names as such, so possibly with subtle differences in pages found)

    (defadvice man (before my-woman-prompt activate)
      (interactive (progn
                     (require 'woman)
                     (list (woman-file-name nil)))))

See also: