3

我环顾四周,无论如何都找不到使用fzf在 irb 或 pry 控制台中搜索历史记录。有没有办法实现?

4

1 回答 1

4

环顾四周,我发现命令完成与GNU Readline相关联,然后我找到了Readline的纯 ruby​​ 实现,实际上使 fzf 与 pry 一起工作很容易RbReadline,我所要做的就是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
    

rl_insert_text您从 fzf 选择的结果插入到光标后的终端中。

于 2017-10-28T15:16:47.977 回答