繁体   English   中英

Emacs(Cocoa Emacs)与Aquamacs在Mac OS X上运行Clojure

[英]Emacs (Cocoa Emacs) vs Aquamacs for running Clojure on Mac OS X

到目前为止我使用了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克隆并将所有文件复制到.emacs.d目录中
  • 将以下代码添加到.emacs并重新启动
(when
        (load
         (expand-file-name "~/.emacs.d/package.el"))
      (package-initialize))

步骤2)使用ELPA安装

  • Mx package-list-packages用于选择包
  • 安装
    • clojure-mode,clojure-test-mode
    • 史莱姆,史莱姆
    • 自吹,Clojure的
  • Mx粘液安装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)

Aquamacs

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

步骤1) 为Aquamacs安装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)

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

ELPA

我试图将Emacs和Aquamacs的软件包结合起来,但它们并没有结合起来。 我以为我可以使用ELPA本身,而不是ESK来共享它。

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

成功 - 用'lein swank'运行Aquamacs / Clojure。

请参考这个

由于Clojure的作者使用它,因此Aquamacs绝对适用于Clojure。 但是,我使用Emacs,在Emacs部分执行上述步骤后,我建议查看labrepl,

http://github.com/relevance/labrepl

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

如果你想使用lein swank代替:

确保安装了leiningen。 在您的project.clj dev依赖项中,您希望拥有如下条目:

[leiningen/lein-swank "1.1.0"]

http://clojars.org/leiningen/lein-swank

然后在你完成lein deps你应该能够运行lein swank ,然后从Emacs中运行Mx slime-connect ,只需按下默认输入即可。

如果你打算走这条路,这里是直接连接到leiningen的链接,所以你可以跳过labrepl存储库: http ://github.com/technomancy/leiningen

Paul Barry讲授如何使用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)))

我可以运行'Mx clojure-mode',以及Cc Cz for REPL。

正如在Emacs上同时Running Clojure和其他Lisp中提问和回答的那样,我可以在Aquamacs上同时使用Clojure / Lisp。

我发现是最新版本的最简单的设置。 这是一个快速摘要,我假设你已经安装了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并且已加载项目的依赖项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM