Clojure:'lein repl'历史上的问候?

时间:2012-04-01 15:25:41

标签: clojure grep history read-eval-print-loop leiningen

我经常发现自己在bash上执行这样的命令:

历史| grep'find'

例如,为了查找我可能已经运行的奇特的find / xargs命令。

我想知道---“lein repl”在哪里存储其历史数据?很高兴知道,因为那时我可以编写一个leingrep.sh脚本,它只是通过lein历史会话进行了深入研究。

很明显,这是在磁盘上的某个地方,因为历史记录从一个repl保留到下一个repl。

4 个答案:

答案 0 :(得分:8)

Lein正在使用readline(如果已安装)或jline(如果你很不幸,我建议安装readline)。我不打算尝试在磁盘上查找历史文件 - 只需按Ctrl-r,输入搜索文本,然后按住Ctrl-r直到找到您要查找的内容。这是一个通用的readline功能,可以在任何readline应用程序(包括bash)中使用。

答案 1 :(得分:3)

使用readline后,您可以通过~/.inputrc文件考虑几个控件。

我没有找到默认的“历史记录大小”documented,但我猜它只有~100。我经常会丢失一些我希望自己有的旧条目。此外,“vi-mode”对于vi用户来说也是一件好事。 .inputrc中的这些(有奖金)一起变成:

set history-size 10000
set editing-mode vi
# Only require 1 tab for completion.
set show-all-if-ambiguous on

请注意,此配置会影响很多repl工具,例如gdb,irb / pry,lein,psql,ipython,R,......

答案 2 :(得分:0)

查看我的主文件夹。好像lein repl选择了jline。 存储历史记录的文件如下: 〜/ .jline-clojure.main.history 〜/ .jline-reply.history

希望这有帮助。

答案 3 :(得分:0)

我在Mac上安装leinHomebrew

brew install leiningen

并且历史文件存储在我的主目录中:

~/.lein/repl-history

版本是:

% lein --version
Leiningen 2.6.1 on Java 1.8.0_77 Java HotSpot(TM) 64-Bit Server VM

(我没有~/.inputrc也没有~/.jline*