【发布时间】:2018-06-24 16:13:09
【问题描述】:
当我使用repl function from clojure.main 时,如何从我的 REPL 中获得类似 readline(或类似 rlwrap)的功能?
背景是我正在使用和自定义 Clojure 第一版中的 break function。我在lein repl REPL 内部使用它。当我的“断点”启动时,Leiningen 的 REPL 的类似 readline 的功能就消失了,这有点不方便。我的肌肉记忆让我按下 ↑,然后快速按下 Enter。在我阻止自己之前,我的终端里已经有了这个:
debug=> ^[[A
CompilerException java.lang.RuntimeException: Unable to resolve symbol: in this context, compiling:(/tmp/form-init13211381000659590518.clj:1:1)
现在我的 REPL 卡住了,我必须终止终端或进程才能退出。如果我可以让 readline 在这个二级 REPL 中工作,或者至少防止这个常见问题破坏我的调试会话,我非常希望。
【问题讨论】:
-
rlwrap不是在这里帮忙吗? -
rlwrap 在普通的
lein replREPL 中工作,但在 REPL 内的 REPL 中不起作用。 -
lein repl带来了自己的 readline 内容。所以rlwrap是我与非 lein-repl 一起使用的。所以我假设单独的rlwrap(no-lein-outer-repl,inner-repl)不会关心(除非repl-in-a-repl与std(out | in)混淆。但是我不知道如何禁用 lein 中的 jreadline2 (?) 支持。
标签: clojure readline leiningen read-eval-print-loop rlwrap