Clojure中的历史记录REPL

问题描述:

我正在做Clojure的第一步,但由于某种原因,上/下键不允许我像REPL中的其他语言一样在REPL中逐步执行命令历史记录。 Clojure REPL是否使用不同的键来访问命令历史记录,还是该功能尚未实现?Clojure中的历史记录REPL

您可以使用JLine增强REPL来完成此操作,请参见here

+0

我运行Ubuntu,在的JLine破删的代价修复的历史? –

如果您有任何机会使用类似Unix的环境,您可以使用rlwrap来实现诸如命令行历史记录和Ctrl-R之类的优秀功能,以便通过它进行搜索。

只是在前面加上你的命令,它用于启动REPL,e.g:

rlwrap java -cp clojure.jar clojure.main

+1

这工作得很好,在OS X上。我只是做了'brew install rlwrap'并准备好去。莱恩也很棒。 – jtruelove

+0

上面的命令对我不起作用,但是一个更简单的变体却没有: rlwrap lein repl –

+1

@JeroenvanDijk:即使你没有安装lein,上面的命令也能正常工作,但是假设你设置了classpath(' cp'参数)正确指向clojure jar - 在这种情况下在同一个目录中。如果你使用lein(这实际上是推荐的方法),你根本不需要输入'rlwrap' - 它包含在这个功能中,试试看 - 只是'lein repl'。 –

或者使用Leiningen或蛋糕。其中任何一种通用都很有用,你会很乐意学会使用它们,但是特别是在可用的地方自动使用readline或jline。

+1

+ 2! 'lein repl'是你的朋友 –

+0

'lein swank'也是你的朋友,那么emacs将提供语法高亮,paredit和其他好东西。 – klang

取决于您使用哪个REPL。大多数好的REPL都有这个功能和更多。

例如,如果您是作为Eclipse用户来自Java,则可能需要使用逆时针插件提供的嵌入式nREPL。我发现这比配置一个单独的专用Clojure环境更容易使用。

C-,M-x slime-repl-forward-input C-,M-x slime-repl-backward-input 转到下一个/上一个历史项目。

http://common-lisp.net/project/slime/doc/html/Input-Navigation.html