通过Emacs脱机查看Common Lisp HyperSpec

Koz*_*oss 3 common-lisp slime

我正在使用Emacs作为我的Lisp环境,并希望能够离线访问Common Lisp HyperSpec.我下载了它,并将文件夹放入我的emacs.d目录.然后我将以下代码放入我的.emacs:

(global-set-key [(f2)] 'slime-hyperspec-lookup) 
(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")
Run Code Online (Sandbox Code Playgroud)

但是,每当我尝试在其中搜索某些内容时,我的查询最终都会出现格式错误.具体来说,假设我搜索dotimes; 被转储到我的浏览器的是file:///.emacs.d/HyperSpec/Body/m_dolist.htm,它与HyperSpec文件夹中的目录结构不匹配,导致查询失败.相反,HyperSpec查找格式适合Web版本(在这种情况下,它可以正常工作).

我有什么方法可以解决这个问题,如果是这样,怎么办?我基本上只是希望能够在我不在线时查找HyperSpec.

小智 8

你可能会想试试我的CLHS ASDF的包装,这是专门设计给CLHS下载到标准位置(基本quicklisp目录),然后帮助您设置的emacs指向它.

只需调用(ql:quickload "clhs")并按照说明操作即可.

希望这可以帮助!


编辑:@JigarParekh我想你可能已经快速浏览了我的答案.

问题的标题是"通过Emacs离线查看Common Lisp HyperSpec".问题的主体基本上陷入了手动安装CLHS并将emacs指向它的细节,并询问如何解决与此相关的直接子问题.选定的答案解决了用户的直接子问题,但鉴于目前可用的问题,它不是最佳的.

我的答案确实包括答案的基本部分,即:

只需调用(ql:quickload "clhs")并按照说明操作即可.

这将以可预见的未来可用的方式从Quicklisp下载CLHS,无论我在第一段中包含哪些有用但可选的附加信息以供参考.即使引用链接的内容发生了变化,或者即使上帝禁止它们变为404 Not Found或其他不可用,我的回答仍然有用.(我顺便提一下,由于引用的页面是公共域名网站的一部分并且可以在github上获得,所以任何人都可以轻松地镜像它并在此处提供替换链接.但正如我所说,它是可选的附加参考信息无论如何.)

  • 该答案包含了我需要的所有内容,而无需点击链接,因为执行 Quicklisp 命令会下载该工具并指导我如何使用和自定义它。简单、美观、有效。 (2认同)

sds*_*sds 5

请更换

(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")
Run Code Online (Sandbox Code Playgroud)

(setq common-lisp-hyperspec-root "~/.emacs.d/HyperSpec/")
Run Code Online (Sandbox Code Playgroud)

甚至

(setq common-lisp-hyperspec-root (expand-file-name "~/.emacs.d/HyperSpec/"))
Run Code Online (Sandbox Code Playgroud)