如何在Emacs和Leiningen中使用REPL

5
我正在学习Clojure,其中一个难点是使用库和依赖项......我之前使用过JavaScript和Ruby,它们有RubyGems和NPM,非常简单......现在我尝试使用Leiningen,我已经安装了Leiningen并使用Emacs安装了Elein......我可以创建项目、处理库和依赖项,并且运行良好......但是我无法使用REPL,我的Slime“评估表达式和评估区域”不起作用......我对Slime和Clojure模式真的很新手,对Leiningen更是如此,我不知道工作流程是什么......
我将我的库设置在项目中,我的主要命名空间并调用“elein-deps”或“elein-install”
我编写了代码并使用“elein-run”运行它......它正常运行
但是我该如何使用REPL......是否有自动加载Leiningen REPL的方法,或者我需要在我的REPL中导入文件和命名空间(对不起,我对Clojure很新手,不熟悉使用它加载文件和命名空间的方式......我必须使用“load-file”和我的文件的完整路径......还是必须使用“use”?)
如果您能解释一下Leiningen在Clojure中的工作流程,我将不胜感激......谢谢!
1个回答

2
你需要使用'require'或'use'将你的代码加载到环境中。Leiningen支持在REPL初始化期间对代码进行评估,文件使用':repl-init-script'选项指定。这个文件也会在swank的加载时被评估...
P.S. 你还可以查看':repl-init'选项 - 它将加载给定的命名空间并切换到它...
P.P.S. 你还可以从新的Clojure模式使用M-x clojure-jack-in,启动Swank,运行'lein swank'并连接到Swank的REPL

谢谢您的回答,但对我仍然没有用。我检查了类路径,它是正确的。但是当我尝试运行(:use myproject.core)时,我得到了[Thrown class java.lang.ClassNotFoundException]。我的类路径指向我的src文件夹(和许多其他文件夹),我也尝试了swank-clojure-project,但不起作用。我已经尝试将其指向所有我的文件夹,但从未起作用。我尝试了"elein-swank"这个连接,但当我使用slime-connect时,我得到了"version different nil slime vs 202232 swank..continue?...然后我按"y"打开repl,但当我尝试(:use ...)时,我再次得到java.lang.ClassNotFoundException :( - corb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接