在Mac OS X上运行Clojure的Emacs(Cocoa Emacs)vs Aquamacs
题
我用过 水瓶,水瓶 到目前为止,我需要安装并运行 [医]Clojure 使用 鬼口水.我用google搜索了一些方法来在Aquamacs的粘液上使用Clojure,但没有成功。
问题:
- 是否可以在Aquamacs上安装Clojure?或者,你能猜到为什么Aquamacs上的Clojure不起作用吗?
- Emacs和Aquamacs不能共享相同的是正常的吗 埃尔帕?
- 是否可以使用ELPA在Emacs/Aquamacs上安装Conjure?
- 我被告知可以使用'lein swank'作为服务器运行,你知道如何做到这一点吗?
我尝试过的序列(并且成功了一半)
我试过了 Mac OS X Emacs的, ,并按照步骤,我可以使其工作。我的意思是,我可以用粘液运行Clojure。
适用于Mac OS X的Emacs
步骤1)安装 埃斯克.
- Git克隆并将所有文件复制到
.emacs.d
目录 - 将以下代码添加到
.emacs
并重新启动
(when (load (expand-file-name "~/.emacs.d/package.el")) (package-initialize))
Step2)使用ELPA安装
- M-x软件包-列表-选择软件包的软件包
- 安装/安装
- clojure-mode,clojure-test-mode
- 煤泥,煤泥-repl
- 斯旺克-clojure
- M-x黏液安装clojure
- 将以下代码添加到
.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
- 将文件复制到~/Library/Preference/Aquamacs Emacs
- 修改"~/Library/Preferences/Aquamacs Emacs/Preferences。el"添加以下内容
(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)
第二步) *按照与之前相同的步骤安装所有(相同)软件包,但"M-x slime"给我以下错误消息。"Symbol的函数定义无效:定义-黏液-contrib"
埃尔帕
我试图结合Emacs和Aquamacs的软件包,但它们没有结合起来。我想我可以用 埃尔帕 本身,而不是从ESK使其共享。
结果并不好,因为ELPA无法下载swank-conjure包。
成功-使用"lein swank"运行Aquamacs/Clojure。
请参阅 这.
解决方案
Aquamacs绝对适用于Clojure,因为Clojure的作者使用它。但是,我使用Emacs,并且在Emacs部分中执行上述步骤后,我建议查看labrepl,
http://github.com/relevance/labrepl
如果您没有leiningen,获取和安装它的链接在labrepl自述文件的说明中。当我第一次学习如何为Clojure编程设置环境时,我发现它非常有帮助。你可以把 project.clj
文件在labrepl和拼凑它是如何工作很容易。更不用说labrepl自带的内置web应用程序中的课程和培训了。
如果你想用lein swank代替:
确保你已经安装了莱宁根。在你的项目中。clj dev dependencies你想有一个像这样的条目:
[leiningen/lein-swank "1.1.0"]
http://clojars.org/leiningen/lein-swank
然后在你做完之后 lein deps
你应该能跑了 lein swank
然后从Emacs运行 M-x slime-connect
并通过默认按enter键。
如果你打算走这条路,这里是直接到莱宁根的链接,所以你可以跳过labrepl存储库: http://github.com/technomancy/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和项目的依赖项。
保罗*巴里 给出了一个如何使用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',并为REPL运行C-c C-z。
正如被问到和回答的那样 在Emacs上运行Clojure和其他Lisp, ,我可以在Aquamacs上同时使用Clojure/Lisp。