【问题标题】:How do I set up Aquamacs for Clojure development?如何为 Clojure 开发设置 Aquamacs?
【发布时间】:2010-01-22 21:10:57
【问题描述】:

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

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

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

我想要的是:

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

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

【问题讨论】:

  • 我的第一步:下载并安装 Aquamacs 1.9。 git clone git://github.com/jochu/clojure-mode.git 在 homedir 中制作 .emacs 文件,内容为:(add-to-list 'load-path "~/git/clojure-mode") m-x clojure-install,继续安装clojure,clojure-contrib,但是在安装Swank的过程中报错。 (需要'clojure-mode)
  • 显然那是 clojure-mode 的错误版本。我尝试了 git://github.com/technomancy/clojure-mode.git 。有没有 m-x clojure-install,它说这个函数被 swank-clojure 弃用了。不知道如何安装。
  • 所以 paredit 已安装,但不执行任何操作。为什么不呢?
  • 激活了吗?试试 M-x paredit-mode。
  • 显然它没有激活 - 如何让它默认激活? Aquamacs 的首选配置文件是什么(.emacs 已弃用?)

标签: emacs clojure slime aquamacs paredit


【解决方案1】:

这些是我在不使用 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 路径/to/dir/swank-clojure
莱因罐

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

;;自定义 swank-clojure 启动以反映可能的类路径更改
;; M-x 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/*")))

【讨论】:

  • 感谢您的精心回复 - 我今晚要试一试。你有没有用 MacPorts 安装 SLIME 的替代方法?我的目标是拥有最少的依赖项。
  • 你可以在common-lisp.net/project/slime/snapshots/slime-current.tgz下载它或者使用CVS克隆repo: cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co slime跨度>
【解决方案2】:

下载并安装 Aquamacs。

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

执行 M-x package-list-packages

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

完成。

【讨论】:

  • 没有关于在 Aquamacs 上安装 ELPA 的说明,并且 Emacs 22 的说明不起作用。
  • 不以什么方式工作?你收到错误信息吗?哦 - 您通过将光标定位在最后一个括号右侧并按 C-x-e 来执行。
  • ELPA 文档说 C-j,但 C-x-e(即 C-x C-e)有效。嗯,第一次出现http错误,第二次显示包列表。我还通过按“i”而不是“I”来选择包 slime 和 slime-repl。按“x”开始编译,这给了我一堆警告和一个错误(在 slime-repl 中),希望不是致命的。
  • 您可以随时使用 C-h m(这是一个单独的简单 m,而不是 C-m)来获取当前主要模式以及操作中的任何次要模式的帮助,这将告诉您所有当前的键绑定.无论如何,这对 Emacs 来说是正确的;但我想 Aquamacs 可能也有。
【解决方案3】:

这是一篇提到 Aquamacs 的博文:Setting up Clojure, Incanter, Emacs, Slime, Swank, and Paredit

【讨论】:

  • 博客是我上面回复的更详细的版本。它还解释了用于 OSX 的 Emacs 的差异 btw 版本。很好的发现!
  • 很棒的文章 - 可惜它使用了 Maven。大约在 2004 年左右,我对 maven 产生了严重的过敏反应 - 显然它已经好转了,但我还是想戒掉它。
【解决方案4】:

似乎有一种相当简单的方法可以为 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 文件并将其复制到 /库/应用程序支持/Aquamacs Emacs/SLIME

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

    • 感谢您的提示,我知道有很好的替代方案,但此线程确实适用于 Aquamacs 提示 - 即使 Carbon Emacs 也是题外话。
    【解决方案6】:

    今天我要去https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network

    这是用于 ruby​​ 的,一开始不会起作用,但无论如何。 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 开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      相关资源
      最近更新 更多