2014-05-15 57 views
2

我使用Emacs作为我的Lisp环境,并且想要离线访问Common Lisp HyperSpec。我下载了它,并将这些文件夹放到我的emacs.d目录中。然后我把下面的代码到我的.emacs通过Emacs离线查看Common Lisp HyperSpec

(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查找的格式适合网页版本(在这种情况下,它工作得非常好)。

有没有什么办法可以解决这个问题,如果有,怎么办?我基本上只想查看HyperSpec,即使我不在线。

+3

你说你把HyperSpec放到你的.emacs.d中,是你的.emacs.d。在系统根目录中,就像你在这里输入的那样,或者你的setq路径是〜/ .emacs.d/HyperSpec /?或者,这可能是形成这个问题的一个错字? – Orpheus

+0

[有没有像linux man这样的常见lisp文档?](http://stackoverflow.com/questions/18007730/is-there-any-common-lisp-docs-like-linux-man) – sds

回答

4

请更换

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

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

甚至

(setq common-lisp-hyperspec-root (expand-file-name "~/.emacs.d/HyperSpec/")) 
5

你可能想试试我的CLHS ASDF wrapper,这是专门设计给CLHS下载到标准位置(基本上是quicklisp目录)然后他lp你设置emacs指向它。

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

希望这会有所帮助!


编辑:@JigarParekh我想你可能已经剔除了我的答案有点太快了。

问题的标题是“通过Emacs离线查看Common Lisp HyperSpec”。该问题的主体基本陷入了手动安装CLHS和指向emacs的细节,并询问如何解决与此相关的直接子问题。所选答案解决了用户的直接子问题,但是由于今天有什么可用,所以并不是最优的。

我的回答确实包含了答案,这是的重要组成部分:

简单地调用(ql:quickload "clhs"),并按照指示。

无论我在第一段中提供的有用但可选的附加信息(包括供参考),此操作都可以在可预见的将来保持可用,从Quicklisp下载CLHS。即使引用链接的内容发生了变化,或者即使是上帝禁止,他们的404 Not Found或其他不可用,我的答案仍然有用。 (我顺便注意到,由于引用的页面是公共领域网站的一部分,并且可以在github上获得,任何人都可以轻松地对其进行反映,并在此处提供替代链接,但如我所说,这是可选的附加参考信息无论如何。)

+1

虽然这个链接可以回答这个问题,最好在这里包含答案的基本部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 –

+0

@JigarParekh在这种情况下,我认为链接是非常相关的,因为OP正试图解决的具体问题已经得到解决,除了链接之外的答案还有相关说明安装解决方案。 – PuercoPop