gpt4 book ai didi

emacs - 如何在 Clojure 代码上执行相当于 eval-last-sexp 的操作

转载 作者:行者123 更新时间:2023-12-04 05:49:03 25 4
gpt4 key购买 nike

编辑 由于我尚未完全理解的原因,我的 C-x C-e 绑定(bind)到 eval-last-sexp 而不是 (?) slime-eval-last-expression。现在我可以从 .clj 缓冲区中 C-x C-e 并且我至少可以直接看到我的函数何时(不)正确但是,这显然不会使我只是 slime-eval-last-expression 的函数“可用” REPL。

我已经设置了我的 Emacs 来进行一些 Clojure 编程,但我不知道我的设置是否正确。

我有两个缓冲区:一个用于 .clj 文件,一个用于 REPL。我正在使用 clojure-jack-in 来启动 REPL。

显然我需要总是编译 .clj (这也总是迫使我用提示保存文件)然后我需要切换到 REPL 并在 REPL 中发出一个(使用'myname.space)才能尝试,比如说我写的一个新函数。

对于看似非常简单的事情,要按下很多键。

现在,当然,我可以编写一个 Emacs 宏来完成整个保存/确认/切换到 REPL/问题(使用 'myname.space)shebang 但我想知道我的设置是否正确?

我想换句话说,我的问题是:我连接的 REPL 是否应该始终与包含我正在处理的 .clj 的缓冲区“同步”?

最佳答案

如果你用 Emacs 编辑 clojure,你应该使用 Slime。见 https://github.com/technomancy/swank-clojure

然后,当您使用 M-x clojure-jack-in 在 emacs 中启动和连接 REPL 时,您只需执行 C-x C-e 编译和加载当前的 sexp,或 C-x C-k 编译和加载当前缓冲区。

换句话说,您的 repl 不会“自动”与您刚刚在某些 clojure 代码缓冲区中键入的任何内容同步,但是有更快、更简单的方法可以将代码从缓冲区发送到正在运行的 clojure 程序。

关于emacs - 如何在 Clojure 代码上执行相当于 eval-last-sexp 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10318079/

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