【问题标题】:Emacs (Cocoa Emacs) vs Aquamacs for running Clojure on Mac OS X在 Mac OS X 上运行 Clojure 的 Emacs (Cocoa Emacs) 与 Aquamacs
【发布时间】:2011-03-16 18:12:29
【问题描述】:

到目前为止,我使用的是Aquamacs,我需要使用SLIME 安装和运行Clojure。我搜索了一些在 Aquamacs 的 SLIME 上使用 Clojure 的方法,但没有成功。

问题

  1. 是否可以在 Aquamacs 上安装 Clojure?或者,您能猜出为什么 Aquamacs 上的 Clojure 不起作用吗?
  2. Emacs 和 Aquamacs 不能共享同一个 ELPA 是否正常?
  3. 是否可以使用 ELPA 在 Emacs/Aquamacs 上安装 Conjure?
  4. 有人告诉我可以使用 'lein swank' 作为服务器运行,你知道怎么做吗?

我尝试过的序列(并且成功了一半)

我尝试使用Mac OS X Emacs,并按照步骤操作。我的意思是,我可以用 SLIME 运行 Clojure。

Mac OS X 的 Emacs

步骤 1) 安装ESK

  • git clone 并将所有文件复制到.emacs.d目录中
  • 将以下代码添加到.emacs 并重新启动
(什么时候 (加载 (扩展文件名“~/.emacs.d/package.el”)) (包初始化))

Step2) 使用 ELPA 安装

  • M-x package-list-packages 选择包
  • 安装
    • clojure-mode,clojure-test-mode
    • 粘液,粘液复制
    • swank-clojure
  • M-x slime 安装 clojure
  • 将以下代码添加到.emacs 并重新启动
;; clojure 模式 (添加到列表'加载路径“/Users/smcho/.emacs.d/elpa/clojure-mode-1.7.1”) (需要'clojure-mode-autoloads) (添加到列表'加载路径“/Users/smcho/.emacs.d/elpa/clojure-test-mode-1.4”) (需要'clojure-test-mode-autoloads) ;;粘液 ;(setq 劣质lisp程序“/Users/smcho/bin/clojure”) (添加到列表'加载路径“/Users/smcho/.emacs.d/elpa/slime-20100404”) (需要'粘液自动加载) (添加到列表'加载路径“/Users/smcho/.emacs.d/elpa/slime-repl-20100404”) (需要 'slime-repl-autoloads) ;; swank-clojure (添加到列表'加载路径“/Users/smcho/.emacs.d/elpa/swank-clojure-1.1.0”) (需要 'slime-repl-autoloads)

Aquamacs

现在我可以在 Emacs 上使用 Clojure,我尝试了相同(或非常相似)的方法再次在 Aquamacs 上运行 Clojure。

第一步)安装ESK for Aquamacs

  • 将文件复制到 ~/Library/Preference/Aquamacs Emacs
  • 修改“~/Library/Preferences/Aquamacs Emacs/Preferences.el”添加以下内容
(setq kitfiles-dir (concat (file-name-directory (或(缓冲区文件名)加载文件名))“/aquamacs-emacs-starter-kit”)) ;设置我们要加载的各种目录 (添加到列表'加载路径工具包目录) (需要'初始化)

步骤 2) * 按照与以前相同的步骤安装所有(相同的)软件包,但“M-x slime”给我以下错误消息。 "Symbol 的函数定义无效:define-slime-contrib"

ELPA

我尝试合并来自 Emacs 和 Aquamacs 的软件包,但它们没有合并。我想我可以使用 ELPA 本身,而不是来自 ESK 来使其共享。

结果不好,因为 ELPA 无法下载 swank-conjure 包。

成功 - 使用“lein swank”运行 Aquamacs/Clojure。

请参考this

【问题讨论】:

  • 我有 emacs23.2.1 和基于 emacs23.2.1 的 Aquamacs 2.0。我能够让 package-list-packages 在两者上都能正常工作。 ELPA 能够看到 emacsen 都使用了 ERC 5.2 和其他一些软件包。如果这就是您所说的共享同一个 ELPA 的意思,我想这是可能的。
  • @vpit3833 :ELPA 是 Aquamacs 的 ESK 和 ESK 的一部分。当我第一次使用 ESK/ELPA 安装一些软件包,然后启动 Aquamacs 时,似乎修改了 pacakage.el 文件,使 emacs 无法读取它。原始(下载的)ELPA 应该由 emacs/Aquamacs 共享,但我无法对其进行测试,因为正如我解释的那样,ELPA 本身不能在我的机器上工作。
  • 我建议您先将“问题”部分放在最前面,然后再描述您迄今为止所尝试的内容。它可以帮助读者专注于您实际尝试做的事情,而不是尝试从您对步骤的描述中解析它。

标签: emacs clojure slime aquamacs elpa


【解决方案1】:

Paul Barry 讲授如何使用 Aquamacs 和 Clojure。

很简单,只需将此代码添加到.emacs 文件中,

(添加到列表'加载路径“〜/clojure/clojure-mode”) (setq 劣质 lisp 程序“/Users/smcho/bin/clj”) (需要'clojure-mode) (setq 自动模式列表 (缺点 '("\\.clj\\'" .clojure-mode) 自动模式列表)) (add-hook 'clojure-mode-hook (拉姆达() (定义键 clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp)))

我可以为 REPL 运行“M-x clojure-mode”和 C-c C-z。

正如 Running Clojure and other Lisp at the same time on Emacs 中的提问和回答,我可以在 Aquamacs 上同时使用 Clojure/Lisp。

【讨论】:

    【解决方案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
    

    您现在位于一个带有 clojure 的 slime 缓冲区中,并且您的项目的依赖项已加载。

    【讨论】:

      【解决方案3】:

      Aquamacs 绝对可以与 Clojure 一起使用,因为 Clojure 的作者使用它。但是,我使用 Emacs,在您执行 Emacs 部分中的上述步骤后,我建议您查看 labrepl,

      http://github.com/relevance/labrepl

      如果您没有 leiningen,获取和安装它的链接在 labrepl 自述文件的说明中。在第一次学习如何设置 Clojure 编程环境时,我发现它非常有用。您可以拆开 labrepl 中的 project.clj 文件,然后将它的工作原理拼凑起来。更不用说 labrepl 附带的内置 Web 应用程序中的课程和培训了。

      如果您想改用 lein swank:

      确保您已安装 leiningen。在您的 project.clj 开发依赖项中,您希望有这样的条目:

      [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

      【讨论】:

      • 我安装了 leiningen,可以运行 'lein swank'。使用“M-x slime-connect”,我可以看到“用户>”提示,但它不会像“(+ 3 4)”那样计算等式。它只是不返回任何东西。
      • 嗯。当我使用 ESK 时,我不必在我的 emacs 配置文件中添加任何 lisp 代码。也许你在那里做的事情导致了问题。
      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 2013-10-31
      • 2010-09-14
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多