Clojure REPL 中的历史记录

15

我正在学习Clojure的基础,但是有些不理解的地方,就是在REPL中使用上下箭头无法像其他语言的REPL一样浏览命令历史记录。请问是否Clojure REPL使用了不同的键来访问命令历史记录,或者这个功能还没有(被)实现?

5个回答

22
如果你是在类Unix环境中使用,可以使用 rlwrap来实现像命令行历史记录和Ctrl-R搜索等好用的功能。 只需在启动repl的命令前添加rlwrap即可,例如: rlwrap java -cp clojure.jar clojure.main

1
这在 OS X 上运行得很好。我只需执行“brew install rlwrap”就可以开始了。Lein 也非常出色。 - jtruelove
上面的命令对我没有起作用,但一个更简单的变体可以: rlwrap lein repl - Jeroen van Dijk
1
@JeroenvanDijk:即使您没有安装 lein,上面的命令也可以正常工作,但是假设您将类路径(cp参数)设置正确以指向 clojure jar - 在这种情况下在同一目录中。如果您使用 lein(实际上这是推荐的方法),根本不需要键入 rlwrap-它包括此功能,请尝试一下-只需键入 lein repl - Goran Jovic
@GoranJovic 哦,是的,你说得对,lein repl 已经可以正常工作了 :) - Jeroen van Dijk

8

或者使用Leiningen或Cake。这两个工具通常很有用,你会很高兴学会使用它们,但具体来说,它们会自动使用可用的readline或jline。


1
  • 2!lein repl是你的好朋友。
- Arthur Ulfeldt
"lein swank" 也是你的好朋友,这样 Emacs 就会提供语法高亮、paredit 和其他好东西。 - klang

6

您可以通过使用JLine来增强REPL,详情请参见此处


我正在运行Ubuntu,JLine修复历史记录的同时破坏了删除功能? - Mark Butler

2

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

例如,如果你来自Java作为Eclipse用户,你可能想使用由Counterclockwise插件提供的嵌入式nREPL。我发现这比配置一个单独的Clojure环境更容易使用。


1

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