【问题标题】:How to enable auto completion in Ruby's IRB如何在 Ruby 的 IRB 中启用自动完成
【发布时间】:2010-11-25 19:22:09
【问题描述】:

当我使用 Merb 的内置控制台时,我会获得类似于标准 bash 提示的选项卡自动完成功能。我发现这很有用,并希望在非 merb IRB 会话中启用它。如何在 IRB 中自动完成?

【问题讨论】:

    标签: ruby irb tab-completion


    【解决方案1】:

    只需将require 'irb/completion' 放入您的 irbrc。

    如果这不起作用,请尝试绑定,http://tagaholic.me/bond/:

       require 'bond'; require 'bond/completion'
    

    Bond 不仅改进了 irb 的补全,http://tagaholic.me/2009/07/22/better-irb-completion-with-bond.html,而且还提供了一个简单的 dsl 来进行自定义自动补全。

    【讨论】:

    • 效果很好! Git Bash 中的小历史错误,但我相信它会被修复。
    • 只是想补充一下,如果你在 Ubuntu 上,你可以在 $HOME 目录中创建文件 .irbrc 如果它不存在。
    • 不适用于 irb 版本 0.9.6(09/06/30) 的 OSX 10.11.5
    【解决方案2】:

    这只是重复上面 Cody Caughlan 评论的信息,以便更容易找到:

    require 'irb/completion' 或将以下内容添加到~/.irbrc

    IRB.conf[:AUTO_INDENT] = true
    IRB.conf[:USE_READLINE] = true
    IRB.conf[:LOAD_MODULES] = [] unless IRB.conf.key?(:LOAD_MODULES)
    unless IRB.conf[:LOAD_MODULES].include?('irb/completion')
      IRB.conf[:LOAD_MODULES] << 'irb/completion'
    end 
    

    【讨论】:

    • “上面的页面”有点混乱,因为答案的顺序可以改变。您可能希望参考这些答案的作者的答案。
    • 如果一个简单的 require 语句也是这样,我为什么要把这个块添加到 ibrc 中?
    • @maxschlepzig 这样您就不必在每次使用或打开 irb =) 时输入 require 'irb/completion' =)
    • @M03,我将句子“要么需要 irb/completion 要么将以下内容添加到 ~/.irbrc”解析为“要么 add 需要 irb/completion 到 ~/. irbrc 或将以下内容添加到 ~/.irbrc'。我已经多年没有使用irb,但我仍然有一个~/.irbrc,它确实以require 'irb/completion' 开头并且不包含任何LOAD_MODULES 的东西。并且这样一个历史文件就被加载并写得很好。
    【解决方案3】:

    这在 Mac OS 10.11.5 上对我有用。使用 rvm。执行以下操作:

    1. sudo gem install bond
    2. 在您的主目录中创建文件.irbrcvi ~/.irbrc
    3. .irbrc 文件中添加以下行 require 'bond' Bond.start

    4. 保存并关闭文件

    5. 打开irb并使用tab键自动完成

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2012-11-08
      • 1970-01-01
      • 2012-11-08
      • 2011-07-19
      • 2010-10-27
      • 2012-06-26
      • 2011-11-19
      • 2013-01-20
      相关资源
      最近更新 更多