【问题标题】:Clojure : 'lein repl' history grepping?Clojure:'lein repl' 历史记录?
【发布时间】:2012-04-15 11:22:17
【问题描述】:
我经常发现自己在 bash 中执行这样的命令:
历史 | grep '查找'
例如,要查找我可能运行过的精美 find / xargs 命令。
我想知道 --- “lein repl” 将其历史数据存储在哪里?很高兴知道,因为那时我可以编写一个 leingrep.sh 脚本,它只是简单地通过 lein 历史会话进行 grep。
很明显,这是在磁盘上的某个地方,因为历史从一个副本保存到另一个副本。
【问题讨论】:
标签:
clojure
grep
history
read-eval-print-loop
leiningen
【解决方案1】:
Lein 正在使用 readline(如果你安装了它)或 jline(如果你很不幸,我建议安装 readline)。我不会费心尝试在磁盘上查找历史文件 - 只需按 Ctrl-r,输入搜索文本,然后继续按 Ctrl-r,直到找到所需内容。这是一个通用的 readline 功能,适用于任何 readline 应用程序(包括 bash)。
【解决方案2】:
一旦您开始使用 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、...
【解决方案3】:
查看我的主文件夹。似乎 lein repl 选择了 jline。
存储历史的文件如下:
~/.jline-clojure.main.history
~/.jline-reply.history
希望这会有所帮助。
【解决方案4】:
我在我的 Mac 上安装了 lein 到 Homebrew:
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*)