Emacs阅读chm文档
Posted 西西弗斯的痛苦与无聊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Emacs阅读chm文档相关的知识,希望对你有一定的参考价值。
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
以上是关于Emacs阅读chm文档的主要内容,如果未能解决你的问题,请参考以下文章