Common lisp 通过Emacs脱机查看公共Lisp HyperSpec

Common lisp 通过Emacs脱机查看公共Lisp HyperSpec,common-lisp,slime,Common Lisp,Slime,我正在使用Emacs作为我的Lisp环境,希望能够脱机访问常见的Lisp HyperSpec。我下载了它,并将文件夹放入我的emacs.d目录中。然后,我将以下代码放入我的.emacs: (global-set-key [(f2)] 'slime-hyperspec-lookup) (setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/") 然而,每次我试图搜索其中的内容时,我的查询最终都会出现错误。具体来说,假设我搜索dotimes;在

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

(global-set-key [(f2)] 'slime-hyperspec-lookup) 
(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")
然而,每次我试图搜索其中的内容时,我的查询最终都会出现错误。具体来说,假设我搜索
dotimes
;在我的浏览器中转储的内容是
file:///.emacs.d/HyperSpec/Body/m_dolist.htm
,它与
HyperSpec
文件夹中的目录结构不匹配,导致查询失败。相反,HyperSpec查找会格式化以适应web版本(在这种情况下,它工作得非常好)

有没有办法解决这个问题,如果有,怎么解决?我基本上只想在不在线的情况下也能查看HyperSpec。

请更换

(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")

甚至

(setq common-lisp-hyperspec-root (expand-file-name "~/.emacs.d/HyperSpec/"))
您可能想试试my,它是专门为将CLHS下载到标准位置(基本上是目录)而设计的,然后帮助您设置emacs以指向它

只需调用
(ql:quickload“clhs”)
并按照说明进行操作

希望这有帮助


编辑:@JigarParekh我想你可能把我的答案略过了一点

问题的标题是“通过Emacs离线查看公共Lisp HyperSpec”。问题主体基本上陷入了手动安装CLH并将emacs指向它的细节中,并询问如何解决与此相关的直接子问题。选择的答案解决了用户的直接子问题,但考虑到目前可用的答案,它并不是最佳答案

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

只需调用
(ql:quickload“clhs”)
并按照说明进行操作


这将以一种在可预见的将来仍然可用的方式从Quicklisp下载CLHS,而不考虑我在第一段中提供的用于参考的有用但可选的附加信息。即使参考链接的内容发生了变化,或者即使它们变成404找不到或不可用,我的答案仍然有用。(顺便说一句,我注意到,由于引用的页面是公共域网站的一部分,可以在github上使用,任何人都可以很容易地对其进行镜像,并在这里提供一个替换链接。但正如我所说的,它仍然是可选的附加引用信息。)

你说你将HyperSpec放入了你的.emacs.d中,是你的.emacs.d。在系统根目录中,正如您在这里输入的那样,或者您在setq中的路径应该是~/.emacs.d/HyperSpec/?或者这可能是形成问题的一个输入错误?可能重复的虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会无效。@JigarParekh在这种情况下,我认为该链接非常相关,因为OP试图解决的具体问题已经解决,并且链接之外的答案有安装解决方案的相关说明。该答案包含了我需要的所有内容,而没有遵循链接,因为执行Quicklisp命令下载了该工具,并指导我如何使用和自定义它。简单、美观、有效。
(setq common-lisp-hyperspec-root (expand-file-name "~/.emacs.d/HyperSpec/"))