如何设置 Aquamacs 进行 Clojure 开发?
题
我曾多次尝试迁移到 Emacs 进行 Clojure 开发,遵循各种博客文章、截屏视频和教程,但在此过程中总会出现问题 - 键绑定不起作用、版本不兼容等,我发现自己争先恐后地回到 Vim。但我知道我想要 Paredit 和 SLIME。
因此,我将再次尝试,这次得到了强大的 Stack Overflow™ 社区的支持。
我希望这个问题的答案能够保持最新,并且可以为像我这样的尝试性皈依者提供参考。
我想要的是:
- Clojure 的最新稳定版本
- Aquamacs(如果它对 Rich Hickey 来说足够好,那么对我来说也足够好),最新版本
- Clojure 模式
- 史莱姆/吸吮
- 帕雷特
- 还有什么不可缺少的吗?
安装上述内容的分步说明会非常好 - 最好是 shell 脚本格式。我还想要一些关于如何开始使用最常见的 Clojure 相关操作(包括键绑定)的提示,包括文档和备忘单的链接。
解决方案
这些是我在不使用 ELPA 的情况下设置它们所采取的步骤。希望这可以帮助。
使用 MacPorts 获取 SLIME
sudo port -v install slime
获取帕雷迪
curl -O http://mumble.net/~campbell/emacs/paredit.el
获取 clojure 和 clojure-contrib
- 使用 MacPorts
sudo port -v install clojure clojure-contrib
- 或者直接下载
curl -O http://build.clojure.org/snapshots/org/clojure/clojure/1.1.0-master-SNAPSHOT/clojure-1.1.0-master-20091202.150145-1.jar curl -O http://build.clojure.org/snapshots/org/clojure/clojure-contrib/1.1.0-master-SNAPSHOT/clojure-contrib-1.1.0-master-20091212.205045-1.jar
获取 clojure-mode 和 swank-clojure(Emacs 端)
git clone http://github.com/technomancy/clojure-mode.git
git clone http://github.com/technomancy/swank-clojure.git
获取 swank-clojure(Clojure 端)
- 下载预构建的 jar 文件
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
- 或者从源代码构建(假设已安装 lein)
cd path/to/dir/swank-clojure lein jar
将 clojure、clojure-contrib 和 swank-clojure .jar 文件放入 ~/.swank-clojure 或 ~/.clojure(swank-clojure.el 搜索它们的默认位置)。
添加到 ~/.emacs 或 ~/Library/Preferences/Aquamacs Emacs/customization.el (更改路径以匹配您自己的设置)
(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/") (add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/contrib/") ;; Change these paths to match your settings (add-to-list 'load-path "path/to/dir/clojure-mode/") (add-to-list 'load-path "path/to/dir/swank-clojure/") (add-to-list 'load-path "path/to/dir/paredit/") ;; Customize swank-clojure start-up to reflect possible classpath changes ;; M-x ielm `slime-lisp-implementations RET or see `swank-clojure.el' for more info (defadvice slime-read-interactive-args (before add-clojure) (require 'assoc) (aput 'slime-lisp-implementations 'clojure (list (swank-clojure-cmd) :init 'swank-clojure-init))) (require 'slime) (require 'paredit) (require 'clojure-mode) (require 'swank-clojure) (eval-after-load "slime" '(progn ;; "Extra" features (contrib) (slime-setup '(slime-repl slime-banner slime-highlight-edits slime-fuzzy)) (setq ;; Use UTF-8 coding slime-net-coding-system 'utf-8-unix ;; Use fuzzy completion (M-Tab) slime-complete-symbol-function 'slime-fuzzy-complete-symbol) ;; Use parentheses editting mode paredit (defun paredit-mode-enable () (paredit-mode 1)) (add-hook 'slime-mode-hook 'paredit-mode-enable) (add-hook 'slime-repl-mode-hook 'paredit-mode-enable))) ;; By default inputs and results have the same color ;; Customize result color to differentiate them ;; Look for `defface' in `slime-repl.el' if you want to further customize (custom-set-faces '(slime-repl-result-face ((t (:foreground "LightGreen"))))) (eval-after-load "swank-clojure" '(progn ;; Make REPL more friendly to Clojure (ELPA does not include this?) ;; The function is defined in swank-clojure.el but not used?!? (add-hook 'slime-repl-mode-hook 'swank-clojure-slime-repl-modify-syntax t) ;; Add classpath for Incanter (just an example) ;; The preferred way to set classpath is to use swank-clojure-project (add-to-list 'swank-clojure-classpath "path/to/incanter/modules/incanter-app/target/*")))
其他提示
下载并安装 Aquamacs。
下载并安装 ELPA (http://tromey.com/elpa/install.html)
执行 M-x package-list-packages
用“I”标记名为“clojure-mode”和“swank-clojure”的行,然后按“X”。
完毕。
这是一篇提到 Aquamacs 的博客文章: 设置 Clojure、Incanter、Emacs、Slime、Swank 和 Paredit
似乎有一种相当简单的方法可以为 clojure 设置 Aquamacs 2.4 和 SLIME:
- 安装 Clojure
- 从此处“http://aquamacs.org/”安装 Aquamacs 2.4
- 从此处安装 Aquamacs SLIME 包“http://aquamacs.org/download.shtml”
这 不管用 所以...
- 从这里“http://common-lisp.net/project/slime/#downloading”获取最新版本的 SLIME - 您需要 CVS 快照 tar 文件
- 解开粘液焦油文件,然后将其复制到/库/应用程序支持/aquamacs emac/slime
似乎对我来说工作正常......
我知道 OP 想使用 Emacs 进行 Clojure 开发。我自己是 emacs 粉丝,但我发现使用 Enclojure (http://www.enclojure.org/home)是快速开始破解 Clojure 的好方法。
今天我将前往 https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network
这是针对红宝石的,一开始不起作用,但无论如何。git clone 并根据自述文件将内容复制到 Preferences.el 。通过编辑〜/ Library / Preferences / Aquamacs Emacs /并注释掉modes.el中的几乎所有内容来修复损坏(我在文件中只留下了(setq-default indent-tabs-mode nil))
好的部分:您已经轻松安装了 elpa-package-manager
现在:使用
M-x package-list-packages
去
clojure-mode (press I)
slime (press I)
slime-repl (press I)
Press X to install
完毕。
警告:clojure-jack-in 不起作用,所以你必须这样做
M-x slime-connect
然后按 Enter 两次和 y 开始。