Как сделать историю `reverse-i-search`, используя fzf в консоли irb или pry

Я осмотрелся, не могу найти в любом случае использовать fzf для поиска истории в консоли IRB или Pry. Есть ли способ сделать это?

1 ответ

Посмотрев вокруг, я понял, что завершение команды связано с GNU Readline, а затем я нашел чистую рубиновую реализацию Readline, на самом деле довольно просто заставить fzf работать в pry с RbReadline, что я должен сделать, это переписать RbReadlineметод класса rl_reverse_search_history, который срабатывает, когда мы нажимаем Ctrl + R в консоли pry.

Резюме, что я сделал:

  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, в терминал после курсора.

Другие вопросы по тегам