如何使用'reverse-i-search`历史记录在irb或pry控制台中使用fzf

时间:2017-09-12 03:14:15

标签: irb pry fzf

我环顾四周,无论如何都找不到使用fzf来搜索irb或pry控制台中的历史记录。有什么办法吗?

1 个答案:

答案 0 :(得分:2)

环顾四周后,我发现命令完成与GNU Readline相关联,然后我找到了Readline的纯ruby实现,实际上 使用RbReadline使fzf在pry中工作变得非常容易,我所做的就是覆盖RbReadline的类方法rl_reverse_search_history,当我们触发时在pry控制台中点击 Ctrl + R

总结我的所作所为:

  1. 安装rb-readline

    gem install rb-readline
    
  2. 修改您的.pryrc添加此

    require 'rb-readline'
    
    def RbReadline.rl_reverse_search_history(sign, key)
      rl_insert_text  `cat ~/.pry_history | fzf --tac |  tr '\n' ' '`
    end
    
  3. rl_insert_text在光标后将您从fzf中选择的结果插入终端。