在Rails 4 rails console中,我可以输入history,它的行为就像bash中的history命令一样。例如:
[25] my_rails_project » history
1: Nomination
2: {:ad => "asdfsdasadf"}
3: Nomination.count
4: Nomination.count.to_sql
5: Nomination.all.class
6: Nomination.all.to_sql
...有没有办法搜索历史,例如history | grep Nomination?尾巴怎么样?
注意:当我最初编写这个问题时,我认为history命令来自Rails本身,但它来自我在系统中拥有的gem (我的Gemfile指定了pry gem,它会插入pry)。Pry实际上有一个grep特性,例如history --grep Nomination将给我上面的第1行和第3-6行。它还有一个tail特性。这里记录了这些信息:https://github.com/pry/pry/wiki/History
发布于 2013-12-19 22:16:44
为此,您可以使用~/.irb-history。因此,可以使用以下内容(您必须知道如何做到这一点,但这仅供参考):
tail -fn0 ~/.irb-history # for tailing
cat ~/.irb-history | grep something # for searching请注意,您可能同时拥有这两个文件:~/.irb-history和~/.irb_history,它们中的任何一个都可能比其他文件更新得多。我还没能解开这个谜团。所以,用你觉得更适合自己的那个。
UPDATE:您可以使用以下逻辑访问变量中的历史记录(读取代码Pry使用的代码花费了一段时间,在pry中尝试edit history ):
def pry_history
arr = []
history = Pry::History.new
history.send(:read_from_file) do |line|
arr.push line.chomp
end
arr
end现在,您可以简单地调用pry_history来获取pry的历史记录数组。您可以进一步将其保存在.pryrc配置文件中,并在您需要的时候使用它。
发布于 2013-12-19 22:17:46
<ctrl> + r并键入命令的几个字母。<ctrl> + r选择与搜索匹配的其他命令<ctrl> + <shift> + r从相反的方向选择命令就像bash中的<ctrl> + r一样
发布于 2015-09-27 17:46:55
也许这就是你要找的东西:
def search_history(filter)
puts `cat ~/.irb-history | grep "#{filter}"`
endhttps://stackoverflow.com/questions/20692742
复制相似问题