gpt4 book ai didi

emacs - 在 Emacs 中为 Clojure 设置 SLIME 和 Inferior-Lisp

转载 作者:行者123 更新时间:2023-12-02 05:30:40 24 4
gpt4 key购买 nike

史莱姆

我对 Clojure 和 emacs 都很陌生,我一直在尝试为 Clojure 设置 SLIME。 official documentation隐含地假设您知道使用 emacs 做什么。您不仅仅可以将一堆代码粘贴到配置文件中。由于我对用于数据分析的 Clojure 感兴趣,如果可能的话,我真的不想与 Leiningen 打交道,但我想要 slime 提供的动态环境。

我已经从 /opt/clojure/ 中的 git 安装了 Clojure,并在 /opt/clojure-contrib 中安装了 clojure-contrib,我可以获得 repl。我在 this tutorial 之后的`~/.bin 中从 github 安装了 swank-clojure、clojure-mode 和 slime 。当这不起作用时,我通过添加官方文档的评论部分中的一些内容来更改了一些内容。

当我使用 M-x slime 启动 slime 时,我会得到连续的轮询“/tmp/slime.141​​13”..(使用“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

我在 .bin/ 中创建了一个名为 clj-repl 的脚本,它包含启动 repl 的 java 命令。然后我 M-x set-variable lower-lisp-program/home/wdkrnls/.bin/clj-repl。 Emacs 提示它的类型错误。

最佳答案

使用 Clojure 的最佳方法是首先安装 Leiningen .

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

接下来,我建议从 .emacs 中剥离当前的自定义 Clojure 设置,并安装 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”并部署在其他服务器上,完全没有依赖麻烦。

关于emacs - 在 Emacs 中为 Clojure 设置 SLIME 和 Inferior-Lisp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com