到目前为止,我使用了Aquamacs,我需要使用Clojure安装并运行SLIME。我用谷歌搜索了一些方法在Aquamacs的SLIME上使用Clojure,但没有成功。
我尝试使用Mac OS X Emacs,然后按照我可以使其工作的步骤。我的意思是,我可以用SLIME运行Clojure。
步骤1)安装ESK。
.emacs.d
目录.emacs
并重新启动(when (load (expand-file-name "~/.emacs.d/package.el")) (package-initialize))
Step2)使用ELPA安装
.emacs
并重新启动;; clojure mode (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/clojure-mode-1.7.1") (require 'clojure-mode-autoloads) (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/clojure-test-mode-1.4") (require 'clojure-test-mode-autoloads) ;; slime ;(setq inferior-lisp-program "/Users/smcho/bin/clojure") (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/slime-20100404") (require 'slime-autoloads) (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/slime-repl-20100404") (require 'slime-repl-autoloads) ;; swank-clojure (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/swank-clojure-1.1.0") (require 'slime-repl-autoloads)
现在我可以在Emacs上使用Clojure了,我尝试了相同(或非常相似)的方法再次在Aquamacs上运行Clojure。
步骤1)安装ESK for Aquamacs
(setq kitfiles-dir (concat (file-name-directory (or (buffer-file-name) load-file-name)) "/aquamacs-emacs-starter-kit")) ; set up our various directories to load (add-to-list 'load-path kitfiles-dir) (require 'init)
步骤2) *按照与以前相同的步骤安装所有(相同)软件包,但“M-x slime”给出了以下错误消息。 “符号的函数定义是无效的:define-slime-contrib”
我尝试将Emacs和Aquamacs的软件包结合起来,但它们并没有结合起来。我以为我可以使用ELPA本身,而不是来自ESK来共享它。
结果并不好,因为ELPA无法下载swank-conjure包。
请参阅this。
答案 0 :(得分:5)
Aquamacs绝对适用于Clojure,因为Clojure的作者使用它。但是,我使用Emacs,在Emacs部分执行上述步骤后,我建议查看labrepl,
http://github.com/relevance/labrepl
如果您没有leiningen,则获取并安装它的链接位于labrepl自述文件的说明中。在第一次学习如何为Clojure编程设置环境时,我发现它非常有用。您可以拆开labrepl中的project.clj
文件,并将其工作原理非常简单地拼凑起来。更不用说labrepl附带的内置Web应用程序中的课程和培训。
如果你想使用lein swank:
确保安装了leiningen。在您的project.clj dev依赖项中,您希望拥有如下条目:
[leiningen/lein-swank "1.1.0"]
http://clojars.org/leiningen/lein-swank
然后,在您完成lein deps
之后,您应该能够运行lein swank
,然后从Emacs中运行M-x slime-connect
,只需按默认值输入即可。
如果你要走这条路,这里是直接链接到leiningen的链接,所以你可以跳过labrepl存储库:http://github.com/technomancy/leiningen
答案 1 :(得分:2)
Paul Barry讲授如何使用Aquamacs和Clojure。
这很简单,因为您可以将此代码添加到.emacs
文件
(add-to-list 'load-path "~/clojure/clojure-mode") (setq inferior-lisp-program "/Users/smcho/bin/clj") (require 'clojure-mode) (setq auto-mode-alist (cons '("\\.clj\\'" . clojure-mode) auto-mode-alist)) (add-hook 'clojure-mode-hook (lambda () (define-key clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp)))
我可以运行'M-x clojure-mode',而C-c C-z可以运行REPL。
正如在 Running Clojure and other Lisp at the same time on Emacs 中提出并回答的那样,我可以在Aquamacs上同时使用Clojure / Lisp。
答案 2 :(得分:2)
我发现this是所有内容最新版本最简单的设置。这是一个快速摘要,我假设你已经安装了leiningen。
安装swank-clojure插件
$ lein plugin install swank-clojure 1.3.2
创建您的clojure项目
$ lein new test-project
$ cd test-project
$ lein deps
然后在emacs中打开项目中的一个clojure文件并运行clojure-jack-in
M-x clojure-jack-in
您现在处于一个slime缓冲区,其中包含clojure和项目的依赖项。