环顾四周,我发现命令完成与GNU Readline相关,然后我找到了Readline的纯 ruby 实现,实际上让 fzf 在 pry 中工作非常容易RbReadline,我所做的就是RbReadline覆盖类方法,当我们在 pry 控制台中点击+rl_reverse_search_history时会触发该方法。CtrlR
我所做的总结:
安装 rb-readline
gem install rb-readline
Run Code Online (Sandbox Code Playgroud)
修改你的.pryrc添加这个
require 'rb-readline'
def RbReadline.rl_reverse_search_history(sign, key)
rl_insert_text `cat ~/.pry_history | fzf --tac | tr '\n' ' '`
end
Run Code Online (Sandbox Code Playgroud)
将从rl_insert_textfzf 选择的结果插入到终端光标后。