2013-06-30 86 views
3

我正在爲emacs配置slime。到目前爲止,我已經閱讀了關於通用lisp的基本功能,例如C-c C-q,它調用命令slime-close-parens-at-point,該命令將鼠標所在的適當數量的parens放入。另一個看起來很酷的命令是由C-c C-c調用的,它會將你在緩衝區中編輯的代碼傳遞給REPL,並「編譯」它。Common Lisp - 配置slime和emacs

爲什麼這些命令不適合我?

反正,我已經下載通過M-x list-packagesslime和似乎並不具備此功能(C-h w,然後這些命令的告訴我,這些命令的音符存在)。所以,我看到了一堆其他的粘液擴展,例如slime-repl', 'slime-fuzzy' and 'hippie-expand-slime'. So I again used M-x list-packages`並下載了它們。

我還沒有這些命令。這裏是我的emacs的內容文件相關的煤泥:

;;;Common Lisp and Slime                                 
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/slime-20130626.1151") 
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/slime-repl-201000404") 
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/hippie-expand-slime-20130226.1656") 
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/slime-fuzzy-20100404") 

(require 'slime) 
(setq slime-lisp-implementations 
    `((sbcl ("/usr/bin/sbcl")) 
     (ecl ("/usr/bin/ecl")) 
     (clisp ("/usr/bin/clisp" "-q -I")))) 

(require 'slime-repl) 
(require 'slime-fuzzy) 
(require 'hippie-expand-slime) 

當我執行M-x slime我得到的inferior-lisp緩衝在那裏我可以執行的Common Lisp代碼如下消息(但是,不應該這個是slime-repl因爲我需要它):

STYLE-WARNING: redefining EMACS-INSPECT (#<BUILT-IN-CLASS T>) in DEFMETHOD 
STYLE-WARNING: 
    Implicitly creating new generic function STREAM-READ-CHAR-WILL-HANG-P. 
WARNING: These Swank interfaces are unimplemented: 
(DISASSEMBLE-FRAME SLDB-BREAK-AT-START SLDB-BREAK-ON-RETURN) 
;; Swank started at port: 46533. 

然後,slime-error緩衝與內容創建:

Invalid protocol message: 
Symbol "CREATE-REPL" not found in the SWANK package. 

    Line: 1, Column: 28, File-Position: 28 

    Stream: #<SB-IMPL::STRING-INPUT-STREAM {10056B9C33}> 

(:emacs-rex (swank:create-repl nil) "COMMON-LISP-USER" t 5) 
  1. 我應該如何修改我的emacs文件以提供這些命令的功能?在我的emacs文件中,我沒有加載必要的文件?我是否需要安裝額外的軟件包?

或者,如果你有更好的想法讓我知道! 如果您需要更多信息,請告訴我!所有的幫助非常感謝!

+0

我之前寫過關於(在我看來)設置環境的簡單方法:http://stackoverflow.com/questions/12607716/setting-the-slime-in-emacs/12609066#12609066,也許你會覺得這很有用。 – 2013-07-01 06:29:29

回答

3

Swank是SLIME後端共同lisp(在你的情況下,它是SBCL)的服務器。 SLIME是emacs lisp的前端。

slime-repl本身不起作用,它需要服務器端的相應插件。你應該確保swank目錄中有swank-repl.lisp。它的swank-repl.lisp包括「CREATE-REPL」函數。

你的粘液repl不起作用。所以你不能在emacs中看到* slime-repl *緩衝區。

我更喜歡使用其官方GIT回購(https://github.com/slime/slime)中的SLIME。