首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails控制台历史记录命令(通过pry) --它可以被修改或跟踪吗?

Rails控制台历史记录命令(通过pry) --它可以被修改或跟踪吗?
EN

Stack Overflow用户
提问于 2013-12-19 22:15:08
回答 4查看 4.2K关注 0票数 4

在Rails 4 rails console中,我可以输入history,它的行为就像bash中的history命令一样。例如:

代码语言:javascript
复制
[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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-19 22:16:44

为此,您可以使用~/.irb-history。因此,可以使用以下内容(您必须知道如何做到这一点,但这仅供参考):

代码语言:javascript
复制
tail -fn0 ~/.irb-history  # for tailing
cat ~/.irb-history | grep something # for searching

请注意,您可能同时拥有这两个文件:~/.irb-history~/.irb_history,它们中的任何一个都可能比其他文件更新得多。我还没能解开这个谜团。所以,用你觉得更适合自己的那个。

UPDATE:您可以使用以下逻辑访问变量中的历史记录(读取代码Pry使用的代码花费了一段时间,在pry中尝试edit history ):

代码语言:javascript
复制
 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配置文件中,并在您需要的时候使用它。

票数 7
EN

Stack Overflow用户

发布于 2013-12-19 22:17:46

  1. 转到rails控制台
  2. <ctrl> + r并键入命令的几个字母。
  3. 使用<ctrl> + r选择与搜索匹配的其他命令
  4. 使用<ctrl> + <shift> + r从相反的方向选择命令

就像bash中的<ctrl> + r一样

票数 6
EN

Stack Overflow用户

发布于 2015-09-27 17:46:55

也许这就是你要找的东西:

代码语言:javascript
复制
def search_history(filter)
    puts `cat ~/.irb-history | grep "#{filter}"`
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20692742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档