首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Emacs中为Clojure设置黏液&下级Lisp

在Emacs中为Clojure设置黏液&下级Lisp
EN

Stack Overflow用户
提问于 2011-09-01 16:46:26
回答 2查看 3.6K关注 0票数 5

黏液

我对Clojure和emacs都很陌生,我一直在尝试为Clojure设置黏液。正式文件隐式地假定您知道您对emacs做了什么。不仅有一堆代码可以插入您的配置文件中。因为我对数据分析的Clojure感兴趣,所以如果可能的话,我真的不想处理Leiningen,但是我想要slime提供的动态环境。

我已经在/opt/clojure/中从git中安装了Clojure,在/opt/clojure-contrib中安装了clojure-cont肋骨,并且我可以得到一个repl。我在本教程后面的`~/..bin中安装了swank-clojure、clojure-模式和github中的粘液。当它不起作用时,我从正式文档的注释部分添加了一些内容,从而改变了一些事情。

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

这是我的init-clj.el

代码语言:javascript
复制
;; 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打开时调用它时遇到的错误:

代码语言:javascript
复制
(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)

下李斯特

我在.bin/中创建了一个名为clj-repl的脚本,它保存了java命令来启动一个repl。然后,我将M设置为变量下位lisp程序/home/wdkrnls/..bin/clj-repl。Emacs抱怨它的类型不对。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-01 18:42:02

使用Clojure的最佳方法是从安装莱宁根开始。

然后将斯万克克洛尔安装为Leiningen插件。

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

代码语言:javascript
复制
;; 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“来部署到其他服务器上,完全没有依赖关系的麻烦。

票数 5
EN

Stack Overflow用户

发布于 2011-09-11 19:47:45

试试这里详细介绍的方法。在一个干净的unix或mac上从头开始设置所有东西需要几分钟:

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7273589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档