5

粘液

我对 Clojure 和 emacs 都很陌生,我一直在尝试为 Clojure 设置 SLIME。官方文档隐含地假设你知道你在用 emacs 做什么。不只是一堆代码可以粘贴到您的配置文件中。由于我对 Clojure for Data Analysis 感兴趣,如果可能的话,我真的不想与 Leiningen 打交道,但我想要 slime 提供的动态环境。

我已经从 git in/opt/clojure/和 clojure-contrib in安装了 Clojure /opt/clojure-contrib,我可以得到一个 repl。我按照本教程在 `~/.bin 中从 github 安装了 swank-clojure、clojure-mode 和 slime 。当这不起作用时,我通过从官方文档的评论部分添加一些东西来改变了一些东西。

当我开始粘液时,M-x slime我得到一个连续的Polling "/tmp/slime.14113".. (Abort with 'M-x slime-abort-connection'.).

这是我的init-clj.el

;; clojure-mode
(add-to-list 'load-path "~/.bin/clojure-mode")


;; swank-clojure
(add-to-list 'load-path "~/.bin/swank-clojure")

(setq swank-clojure-jar-path "/opt/clojure/clojure.jar"
  swank-clojure-extra-classpaths (list
                  "~/.bin/swank-clojure/src/swank"
                  "/opt/clojure/clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar"))

(require 'swank-clojure)

;; slime
(eval-after-load "slime" 
  '(progn (slime-setup '(slime-repl))))

(add-to-list 'load-path "~/.bin/slime")
(require 'slime)
(eval-after-load 'slime '(setq slime-protocol-version 'ignore))
  (slime-setup '(slime-repl))
(require 'clojure-mode)
(require 'clojure-test-mode)

这是我在打开ants.clj时调用它时得到的错误:

(progn (load "/home/kca/.bin/slime/swank-loader.lisp" :verbose t) (funcall (read- from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.14113" :coding-system "iso-latin-1-unix"))

Clojure 1.2.0-master-SNAPSHOT
user=> java.lang.Exception: Unable to resolve symbol: progn in this context (NO_SOURCE_FILE:1)

劣质 Lisp

我制作了一个名为 clj-repl 的脚本,.bin/其中包含用于启动 repl 的 java 命令。然后我 Mx 设置变量的 suber-lisp-program /home/wdkrnls/.bin/clj-repl。Emacs 抱怨它的类型错误。

4

2 回答 2

5

使用 Clojure 的最佳方式是从安装Leiningen开始。

然后将Swank Clojure作为 Leiningen 插件安装。

接下来,我建议从 中剥离您当前的自定义 Clojure 设置.emacs,然后安装ELPA,然后在您的.emacs文件中设置以下初始化代码:

;; Find this line, added by ELPA:
(require 'package)
;; and add the following expression:
(add-to-list 'package-archives
             '("marmalade" . 
               "http://marmalade-repo.org/packages/") t)
;; ... and the rest of the ELPA init code
(package-initialize)

然后,运行package-list-packages并安装clojure-modeslime(并且paredit为了更好地衡量),以及您可能想要的任何其他东西。

这应该让你们都设置好并准备好在 (Leiningen) Clojure 项目中使用 SLIME。尽管这里的过程看似复杂,但您可以从您的项目中创建一个“uberjar”以部署到其他服务器上,而绝对没有依赖问题。

于 2011-09-01T18:42:02.100 回答
1

试试这里详述的方法。在干净的 unix 或 mac 机器上从头开始设置所有内容需要几分钟:

http://www.learningclojure.com/2010/08/clojure-emacs-swank-slime-maven-maven.html

于 2011-09-11T19:47:45.060 回答