1 简介

-------

 * woman实现了Emacs中man(或manual-entry)命令的一个子集,而不用调用任何外部程序

 * 所有WoMan的相关命令和变量都以前缀`woman-`开头(偶尔也以`WoMan-`开头)

 * 通过命令`woman-mini-help`可以获得WoMan相关命令和变量的简要说明

 * WoMan提供了三种user interface来查看man文档

   * topic interface

   * filename interface

   * automatic interface


2 Topic interface

------------------


2.1 准备工作

=============

  使用Topic interface前,需要先告诉WoMan去哪里查找man文档. 默认情况下WoMan使用man的设置,但也可以自定义配置,有两个相关变量:

  * woman-manpath

    the elements of `woman-manpath' must be directories that contain _directories of_ man files

  * woman-path

    the elements of `woman-path' must be directories that contain man files _directly_.


2.2 Cache

==========

  在第一次使用Topic interface时,WoMan会将man文档内容缓冲起来,如果缓冲的内容和实际内容不对时,可以使用`C-u M-x woman`来重建缓存.  只有在man文件的名字或地址改变时才需要重建缓存,如果仅仅是文件内容变了,则不用重建缓存.

  * woman-cache-level

    不同的level缓存的信息也不一样.

  * woman-cache-filename

    一般情况下,WoMan在内存中建立缓存. 但通过设置该值可以让WoMan将缓存保存起来下次使用. 默认情况下该值为nil表示不保存.


3 Filename interface

---------------------

 * woman-find-file

 * woman-dired-find-file

   在dired-mode下,可以用该命令查看光标所在的man文档,一般绑定到W或w

 * woman-tar-extract-file

   在tar-mode下,可以用该命令查看光标所在的man文档,一般绑定到W或w

 * woman-decode-buffer

   将当前buffer内容当成man文档内容来查看.


4 Automatic Interface

----------------------

 Automatic Interface下,Emacs会自动检测所打开文件的格式,若为man格式的文档,则自动解码.



;在.emacs中加入如下代码
(autoload 'woman-decode-region "woman")
(add-to-list 'format-alist
             '(man "Unix man-page source format" "\\.\\(TH\\|ig\\) "
                   woman-decode-region nil nil
                   (lambda (arg)
                     set-visited-file-name
                     (file-name-sans-extension buffer-file-name))))


5 查看Man文档时的命令

----------------------

 * SPC

   下翻一页

 * DEL

   上翻一页

 * Nn

   移动到下N个section-默认情况下是1个section

 * Np

   移动上上一个section-默认情况下是1个section

 * g

   定位到指定的section

 * s

   定位到"SEE ALSO" section

 * r

   跳转到指定的链接.

 * Mouse-2 / RET

   跳转到光标所在的链接

 * m

   运行shell命令`man`,它读取minibuffer中输入的关键字取得Unix的manual page,并且在buffer中显示出来

 * w

   运行另一个WoMan

 * q

   退出包含当前man page的buffer(不会关闭原buffer,只是跳到其他buffer中)

 * k

   关闭包含当前man page的buffer

 * M-p

   跳到上一个WoMan buffer

 * M-n

   跳到下一个WoMan buffer

 * R

   重新格式化最后一个被WoMan格式化过的man page

 * < / .

   跳到当前buffer的最开头位置,并在原位置加mark

 * >

   跳到当前buffer的最末尾位置,并在原位置加mark

 * ?

   显示当前mode的说明文档