2014-05-15 94 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