2014-07-18 85 views
6

我已經使用https://github.com/thephoeron/slime-pack安裝了粘液,並且想要更多地探索common-lisp。如何在使用粘液時跳轉到emacs中的函數定義?

如何訪問emacs中特定功能的源代碼?

舉例來說,如果我有一個函數:

(type-of 1) 

,我想訪問的type-of源,這可怎麼辦呢?

+0

我不使用你引用的庫,但我確實頻繁地使用'M-x find-function'。那對你有用嗎?還有'find-function-other-window'和'find-function-other-frame'。 – lawlist

+0

我有錯誤,「Directory/usr/bin/src/code'不存在,創建它?」但在我使用Emacs的包管理器安裝了Slime後,它工作正常。 – Ehvince

回答

10

Meta

它調用的函數:slime-edit-definition

用於跳轉到你的Lisp實現內部的功能,你可能需要做一些額外的指向來源。在SBCL,你必須sb-ext:set-sbcl-source-location到正確的地方在.sbclrc

(sb-ext:set-sbcl-source-location "/path/to/sbcl/") 

你可以用C-XC-F~/.sbclrc在Emacs編輯.sbclrc

+3

如果您自己構建SBCL,則會自動設置源位置。 – Xach

+2

只有在您加載的文件中定義了該功能時,此功能纔有效。如果你想用你從源代碼通過Cx e發送到REPL的定義來做到這一點,你會得到'錯誤:定義 - 函數FOO-BAR的源不包含有意義的信息。' –

+0

但是,如何跳回來? –

相關問題