如何重复Clojure REPL中的最后一行?

时间:2013-09-03 13:42:47

标签: clojure clojure-repl

在bash或Ruby的IRB中,我可以运行命令或计算表达式,然后使用键盘上的向上箭头编辑并重新运行相同的代码。 (这可能是我配置的内容,但我不这么认为。)

这在Clojure REPL中对我不起作用;我按下向上箭头时只看到^[[A键入。

有没有办法“重新输入”最后一行?

1 个答案:

答案 0 :(得分:12)

正如评论rlwrap中提到的那样,本土Clojure REPL并没有“正在做”,包括箭头导航,历史记录等等。

然而,大多数(如果不是全部)时间Clojure与lein一起使用,后者具有内置的REPL。每次需要Clojure REPL时,您都可以:

lein repl

你不一定需要有一个项目来启动它,它可以从任何地方开始(假设你lein中有PATH)并且有很多其他的非常好属性,rlwrap不会给您。

仅举几例:

  • 如果您在项目的根目录下运行它,它将加载项目的类路径,因此您可以与项目的所有库和代码进行交互

  • 它还会启动一个nREPL,您可以从任何地方(本地/远程)连接到该地址,包括您喜欢的“nREPL能力”的IDE /编辑器。这将允许(例如)vimemacs使用您从lein repl开始的REPL来直接从编辑器进行评估,编译,导航(源代码)。

  • 在它开始之前,它会读取并“服从”~/.lein/profiles.clj,您可以在其中配置几乎任何您想要的会话:gpg密钥,repl-options,依赖项,插件等等。在lein repl

  • 上加载/配置