Emacs阅读chm文档

Posted 西西弗斯的痛苦与无聊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Emacs阅读chm文档相关的知识,希望对你有一定的参考价值。

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

Date: 2017-01-14 17:11

Created: 2017-01-14 周六 23:13

Validate

以上是关于Emacs阅读chm文档的主要内容,如果未能解决你的问题,请参考以下文章

YASnippet - emacs 的代码片段管理工具

win10传奇手册CHM打开无法阅读解决

Emacs的书签功能介绍

使 Emacs 中的文档视图适合页面宽度

使用java代码打开chm格式的帮助文档

winform全屏打开CHM帮助文档