在bash或Ruby的IRB中,我可以运行命令或计算表达式,然后使用键盘上的向上箭头编辑并重新运行相同的代码。 (这可能是我配置的内容,但我不这么认为。)
这在Clojure REPL中对我不起作用;我按下向上箭头时只看到^[[A
键入。
有没有办法“重新输入”最后一行?
答案 0 :(得分:12)
正如评论rlwrap
中提到的那样,本土Clojure REPL并没有“正在做”,包括箭头导航,历史记录等等。
然而,大多数(如果不是全部)时间Clojure与lein
一起使用,后者具有内置的REPL。每次需要Clojure REPL时,您都可以:
lein repl
你不一定需要有一个项目来启动它,它可以从任何地方开始(假设你lein
中有PATH
)并且有很多其他的非常好属性,rlwrap
不会给您。
仅举几例:
如果您在项目的根目录下运行它,它将加载项目的类路径,因此您可以与项目的所有库和代码进行交互。
它还会启动一个nREPL
,您可以从任何地方(本地/远程)连接到该地址,包括您喜欢的“nREPL能力”的IDE /编辑器。这将允许(例如)vim
或emacs
使用您从lein repl
开始的REPL来直接从编辑器进行评估,编译,导航(源代码)。
在它开始之前,它会读取并“服从”~/.lein/profiles.clj
,您可以在其中配置几乎任何您想要的会话:gpg密钥,repl-options,依赖项,插件等等。在lein repl