Emacs阅读chm文档
*/-->
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
Emacs阅读chm文档
在Emacs中查看html的文档,可以通过我这篇w3m查看html文档 文章来进行。但是chm文档是一种html文档的编译版本,在Emacs中无法打开。
那么,要想在Emacs中查看chm,首先要了解chm文档到底是怎样的。
我们打开一个tcl的chm文档,点击任意一个页面,右键查看“属性”,可以看到其中有一项:
地址: mk:@MSITStore:C:\Tcl8.6\doc\ActiveTclHelp8.6.chm::/tdom/dom.html
这个地址可以用系统自带的hh.exe来打开:
hh mk:@MSITStore:C:\Tcl8.6\doc\ActiveTclHelp8.6.chm::/tdom/dom.html
但是,这个不是标准的url,也无法用浏览器打开。另外,我们也不知道要打开的是哪一个html页面。
为了解决这个问题,我们这里有几种方式:
-
使用keyhh.exe来打开:
KeyHH -MyHelp -#klink "ActiveX Control Wizard" htmlhelp.chm
这就是用一个更加高级一点的hh.exe程序来打开chm文档,只要Id配置相同,就只会打开一个chm文档。
keyhh.exe已经停止更新了,官方网站已经关闭了,从这里还可以下载:http://api.256file.com/download/66010_keyhh.exe
但是,里面好像有个bug,就是当第一次搜索的时候,如果需要选择的时候,就会卡死了。把默认的选项"-#klink" 改为 "-#alink" 之后就可以了。
(defun chm-help--lookup-chm (file-path keyword)
"Open a window showing the documentation for the word under the point"
(interactive "fChm File: \nSKeyword: ")
(start-process "keyhh" nil "keyhh.exe"
(concat "-" mode-name) ;; use mode name as ID
"-#alink" (format "'%s'" keyword)
file-path)) (chm-help--lookup-chm "c:/tcl/doc/ActiveTclHelp8.5.chm" "dom") - 使用archmage + chmview
这个只能在linux上使用,archmage没有windows版本。 -
先反编译
先用自带的hh.exe命令反编译成html文件,然后,用w3m查看。hh -decompile X:\A Y:\B.chm