我一直有與建立泥和Clojure的都和Common Lisp的工作麻煩。大多數Clojure開發人員傾向於使用通過ELPA提供的精簡版SLIME,該版本針對Clojure兼容性進行了凍結。然而,我做了很多Common Lisp黑客攻擊,我通常使用SLIME CVS版本(通過QuickLisp獲取)。泥設置兩個Common Lisp的Clojure的和發展
Clojure的Swank實現中有一些衆所周知的問題 - 它不適用於autodoc(如果它啓用SLIME凍結),它不支持某些事情,如模糊完成等。這question討論答案相同的主題表明,對我來說是不行的。
(add-hook 'slime-connected-hook
(lambda()
(if (string= (slime-lisp-implementation-type) "Clojure")
(setq slime-use-autodoc-mode nil)
(setq slime-use-autodoc-mode t))
))
(add-hook 'slime-mode-hook
(lambda()
(if (eq major-mode 'clojure-mode)
(slime-autodoc-mode 0)
(slime-autodoc-mode 1))))
(add-hook 'slime-repl-mode-hook
(lambda()
(if (string= (slime-lisp-implementation-type) "Clojure")
(progn (setq slime-use-autodoc-mode nil)
(slime-autodoc-mode 0))
(progn (setq slime-use-autodoc-mode t)
(slime-autodoc-mode 1)))))
該解決方案在紙上看起來不錯,但對我來說,slime-lisp-implementation-type始終爲零。 (與slime-lisp-implementation-type相同:connlocal與本地連接)。
我基本上需要的只是知道我跑泥和Clojure的斯萬克才能夠修改出現問題的設置方式。
什麼OS是你嗎?我在Mac OS X中得到了這個工作(儘管它也可能適用於Linux)並在此處發佈了博客http://spacemanaki.posterous.com/setting-up-emacs-for-lisp-hacking-on-os-x- PT -0和回答這個問題http://stackoverflow.com/questions/4551283/what-is-wrong-with-my-emacs-slime-setup-compile-and-load-eval-not-working/4555421#4555421唯一可以實現它的方法是同時使用最新的CVS SLIME和ELPA SLIME,並根據我是在使用Common Lisp還是Clojure來加載適當的CVS SLIME和ELPA SLIME。 – spacemanaki 2011-05-13 17:01:18
我正在使用Linux。我知道你提出的解決方案,但我不喜歡它 - 我只是想一直使用CVS SLIME。我可以有一個簡單的函數,在我進行clojure連接之前切換需要的內容,但我更願意找到一種方法將這些設置自動掛接到粘液的啓動中。 – 2011-05-13 21:19:52
我也不喜歡它,但它有效。我會密切關注這個線索,看看有人提出更好的建議,因爲現在我已經放棄了剃這個特殊的犛牛。 – spacemanaki 2011-05-14 05:29:46