IRB有哪些替代品?

时间:2010-10-07 18:33:14

标签: ruby irb

在python世界中,有许多替代python解释器可以添加很酷的附加功能。一个特别有用的示例是bpython,它添加了动态语法突出显示,自动提取文档,并显示实时自动完成信息。在Ruby世界中,我还没有发现任何添加到基本IRB解释器的项目,甚至是这些功能的一部分。我只是不够努力,或者这只是Ruby社区缺乏的东西?

9 个答案:

答案 0 :(得分:33)

使用Pry:http://pry.github.com

让我们:

  • 在运行时启动会话
  • 查看方法源代码
  • 查看方法文档(不使用RI,因此您无需预先生成它)
  • 弹出和弹出不同的背景
  • 语法高亮显示
  • gist integration
  • 查看和重播历史
  • 使用edit-method obj.my_method语法
  • 打开编辑器以编辑方法

一种更好的原创功能

答案 1 :(得分:29)

多么巧合。 Rubyflow昨天宣布了irbtools宝石,这是一个包含大量酷炫irb增强​​宝石的元宝石。它包含:

  • wirbfancy_irb
  • 进行着色并输出为评论
  • 好的IRB提示和IRB的自动缩进
  • 包含stdlib的FileUtils:lscdpwdln_srmmkdirtouch,{ {1}}
  • 许多调试助手:catapqocyObject#m
    • Object#d - awesome_print
    • ap - 与q类似,但在一行
    • p - 有序方法列表(采用整数参数:嵌套级别)
    • Object#m - 放置对象,返回self(使用Object#d
  • “神奇”信息常量:tap
    • Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
  • 剪贴板功能:RubyVersion.is.at_least? 1.9copy
    • 也可用:pastecopy_input用于会话历史记录
  • 调用copy_output(或其他受支持的编辑器)编辑文件,关闭它并将其加载到当前的irb会话中,由vim
  • 提供支持
  • 另一种实时加载到irb的方式:草图
  • 突出显示包含interactive_editor的字符串或带有olorize('string')的文件,由coderay提供支持
  • 将ActiveRecord数据库条目显示为包含ray('path')
  • 的表
  • 使用hirb重新启动irb或使用reset!方法和use
  • 更改Ruby版本
  • 包含加载路径中的当前目录(出于安全原因在1.9.2中被删除,但在IRB中非常烦人)
  • 更短的要求:rvm!
  • 使用rq:mathn
  • 重新询问
  • 尝试使用rrq支持的Object#ri帮助器
  • 使用ori访问更多命令 - 调用命令以开始使用

irbtools页面上有很好的截图。关于它的一个好处是,每个实用程序都可以独立存在,以防您只想挑选一个或两个功能。

2013年更新

自从我写这篇文章以来,Pry已经成为一个受欢迎的IRB替代品。它没有开箱即用boson那么多,但它可以通过添加很酷功能的插件宝石进行扩展。您可以浏览源代码,就像它是一个unix目录:

irbtools

您还可以浏览Ruby文档,发出shell命令,如果您是Rails用户,则可以使用pry(main)> cd FileUtils pry(FileUtils):1> show-method rm From: /opt/ruby/lib/ruby/1.9.1/fileutils.rb @ line 556: Number of lines: 10 Owner: FileUtils def rm(list, options = {}) fu_check_options options, OPT_TABLE['rm'] list = fu_list(list) fu_output_message "rm#{options[:force] ? ' -f' : ''} #{list.join ' '}" if options[:verbose] return if options[:noop] list.each do |path| remove_file path, options[:force] end end pry(FileUtils):2> gem在Rails控制台中获取pry。还有一种方法可以将它连接到Sinatra并与Heroku一起使用。

有足够的文档 - 有很多截屏视频,包括Railscast。这绝对值得研究。

答案 2 :(得分:3)

我从来没有听说过IRB的(流行的)替代方案,但肯定有一些有用的宝石可以让IRB体验更好:

  • awesome_print漂亮地打印带有缩进和着色的Ruby对象,在尝试查看嵌套哈希或其他复杂数据结构时非常有用。
  • looksee也非常棒,它提供了一个方法lp(查找路径),它显示了Ruby对象从哪里获取方法(类,超类等)。
  • Sketches连接您的编辑器和IRB,因此如果您喜欢交互式开发,那么它尤其有用。带有inf-ruby的Emacs对此也很有用。
  • Wirble是一整套IRB增强功能,例如制表符完成和语法高亮显示。还有Utility Belt,但我个人不会使用它,因此无法对其功能发表评论。

修改

我忘了Hirb,这对于例如在Rails控制台中显示ActiveRecord查询的结果。

答案 3 :(得分:2)

答案 4 :(得分:2)

JRuby附带jirb_swing,提供代码完成。

答案 5 :(得分:1)

irb的替代品领域并不多,但有一些宝石为irb添加了有用的功能。

最引人注目的是wirble,除其他外,它为您提供彩色输出(不输入)和超出当前会话的历史记录。

答案 6 :(得分:1)

查看ripl,这是一种可扩展的模块化irb替代方案。您也可以从Is there something like bpython for Ruby?获得一些答案。

答案 7 :(得分:0)

rib是一个模块化且轻巧的Ruby交互式shell。

它和Pry一样,使用Ruby的解析器,因此与Ruby具有一致的行为,从而减少了错误(例如https://stackoverflow.com/a/39271791/474597

它是模块化的,因此可以使用更多功能轻松扩展它。

截至2016年,它仍然在积极维护。

答案 8 :(得分:0)

我制作了一个纯Ruby控制台,灵感来自Google Chrome的JavaScript控制台。

https://github.com/sancarn/RubyConsole

由于我仍在使用当前算法查找错误,因此它仍然主要是一个WIP项目,但是我将其构建为与1.9.3+兼容。