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

Nat*_*ong 2 clojure clojure-repl

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

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

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

tol*_*ius 12

正如评论中所提到的那样rlwrap,本土的Clojure REPL并没有"做到",包括箭头导航,历史等等.

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

lein repl
Run Code Online (Sandbox Code Playgroud)

你不一定需要有一个项目来启动它,它可以从任何地方开始(因为你有lein你的PATH),并有许多其他非常好的特性,它rlwrap不会给你.

仅举几例:

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

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

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