我可以在Slime中使用正在运行的线程(Swank Emacs)

Art*_*ldt 6 lisp emacs clojure slime swank

我经常发现自己从REPL开始一个长时间运行的过程,然后希望我可以在运行时继续使用REPL执行其他任务.我可以使用slime来设置当前线程或启动一个新的REPL控制线程吗?启动一个额外的REPL缓冲区也没问题.

dan*_*lei 2

编辑:

嗯,我不知怎么地错过了你问题上的 Clojure 标签。如果下面的解决方案适用于 Clojure,我会非常惊讶,因为您可能知道,不幸的是 Clojure 社区(至少对于我们这些使用 ClojureCL 的人来说)维护着自己的 Slime 版本。我不会删除答案,因为它可能对寻找此功能的 CL 程序员有所帮助。

除非 Clojure 有类似的解决方案(允许在单个套接字上复用多个 REPL),否则您可能只需手动启动第二个 Swank 服务器(从缓冲区*inferior-lisp*)并通过连接到它slime-connect作为解决方法。(无法测试这个 ATM,因为我不久前停止使用 Slime 和 Clojure。)


您尝试过slime-mrepl贡献吗?我自己实际上并没有使用过它,但是在 CCL/Win/Emacs 24 下对我进行了快速测试。

我是这样测试的: ,在REPL中M-x slime输入,切换缓冲区, .(sleep 10)M-x slime-new-mrepl