31

我曾多次尝试迁移到 Emacs 以进行 Clojure 开发,遵循各种博文、截屏视频和教程,但在此过程中总是出现问题——键绑定不起作用、版本不兼容等,我发现自己争先恐后地回到 Vim。但我知道我想要 Paredit 和 SLIME。

所以,我要再试一次,这一次得到了强大的 Stack Overflow™ 社区的支持。

我希望这个问题的答案将保持最新,并且可以作为像我这样的暂定皈依者的参考。

我想要的是:

  • Clojure 的最新稳定版本
  • Aquamacs(如果它对 Rich Hickey 来说足够好,那对我来说就足够好了),最新版本
  • Clojure 模式
  • 史莱姆/斯旺克
  • 编辑
  • 还有什么不可缺少的吗?

安装上述内容的分步说明会非常好 - 最好是 shell 脚本格式。我还想要一些关于如何开始使用最常见的 Clojure 相关操作(包括键绑定)的提示,包括文档链接和备忘单。

4

6 回答 6

7

这些是我在不使用 ELPA 的情况下设置它们的步骤。希望这可以帮助。

使用 MacPorts 获取 SLIME

sudo port -v install slime

得到paredit

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 路径/到/dir/swank-clojure
莱因罐

将 clojure、clojure-contrib 和 swank-clojure .jar 文件放入 ~/.swank-clojure 或 ~/.clojure(swank-clojure.el 搜索它们的默认位置)。


添加到 ~/.emacs 或 ~/Library/Preferences/Aquamacs Emacs/customization.el (更改路径以匹配您自己的设置)

(添加到列表'加载路径“/opt/local/share/emacs/site-lisp/slime/”)
(添加到列表'加载路径“/opt/local/share/emacs/site-lisp/slime/contrib/”)
;; 更改这些路径以匹配您的设置
(添加到列表'加载路径“路径/到/目录/clojure-mode/”)
(添加到列表'加载路径“路径/到/目录/swank-clojure/”)
(添加到列表'加载路径“路径/到/目录/paredit/”)

;; 自定义 swank-clojure 启动以反映可能的类路径更改
;; Mx ielm `slime-lisp-implementations RET 或查看 `swank-clojure.el' 了解更多信息
(defadvice slime-read-interactive-args (在 add-clojure 之前)
(需要'关联)
(aput 'slime-lisp-implementations 'clojure
(列表(swank-clojure-cmd):init 'swank-clojure-init)))

(需要'粘液)
(需要'paredit)
(需要'clojure-mode)
(需要'swank-clojure)

(加载后评估“粘液”
  '(预测
    ;; “额外”功能(贡献)
    (粘液设置
     '(slime-repl slime-banner slime-highlight-edits slime-fuzzy))
    (setq
     ;; 使用 UTF-8 编码
     粘液网络编码系统'utf-8-unix
     ;; 使用模糊完成(M-Tab)
     slime-complete-symbol-function 'slime-fuzzy-complete-symbol)
    ;; 使用括号编辑模式 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)))

;; 默认情况下,输入和结果具有相同的颜色
;; 自定义结果颜色以区分它们
;; 如果您想进一步自定义,请在 `slime-repl.el' 中查找 `defface'
(自定义设置面
 '(slime-repl-result-face ((t (:foreground "LightGreen")))))

(加载后评估“swank-clojure”
  '(预测
    ;; 让 REPL 对 Clojure 更友好(ELPA 不包括这个?)
    ;; 该函数在 swank-clojure.el 中定义但未使用?!?
    (add-hook 'slime-repl-mode-hook
      'swank-clojure-slime-repl-modify-syntax t)
    ;; 为 Incanter 添加类路径(只是一个示例)
    ;; 设置类路径的首选方法是使用 swank-clojure-project
    (添加到列表 'swank-clojure-classpath
“路径/到/incanter/modules/incanter-app/target/*”)))
于 2010-02-02T10:06:26.747 回答
5

下载并安装 Aquamacs。

下载并安装 ELPA ( http://tromey.com/elpa/install.html )

做 Mx 包列表包

用“I”标记名为“clojure-mode”和“swank-clojure”的行,然后按“X”。

完毕。

于 2010-01-23T16:45:09.570 回答
5

这是一篇提到 Aquamacs 的博文:设置 Clojure、Incanter、Emacs、Slime、Swank 和 Paredit

于 2010-01-24T16:04:54.123 回答
1

似乎有一种相当简单的方法可以为 clojure 设置 Aquamacs 2.4 和 SLIME:

  1. 安装 Clojure
  2. 从此处“http://aquamacs.org/”安装 Aquamacs 2.4
  3. 从此处“http://aquamacs.org/download.shtml”安装 Aquamacs SLIME 包

行不通,所以...

  1. 从这里“http://common-lisp.net/project/slime/#downloading”获取最新版本的 SLIME - 你想要 CVS 快照 tar 文件
  2. 解压 SLIME tar 文件并将其复制到 /Library/Application Support/Aquamacs Emacs/SLIME

对我来说似乎工作正常......

于 2012-06-25T20:00:32.323 回答
0

我知道 OP 想将 Emacs 用于 Clojure 开发。我自己是 emacs 的粉丝,但我发现使用 Enclojure ( http://www.enclojure.org/home ) 是快速开始破解 Clojure 的好方法。

于 2010-02-02T04:38:17.967 回答
0

今天我将前往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

并按两次回车和 y 开始。

于 2012-02-16T13:20:57.333 回答