Ruby 有哪些替代IRB的方法?

Ruby 有哪些替代IRB的方法?,ruby,irb,Ruby,Irb,在python世界中,有许多可选的python解释器添加了一些很酷的附加特性。一个特别有用的例子是bpython,它添加了动态语法突出显示,自动提取文档,并显示实时自动完成信息。在Ruby世界中,我还没有发现任何添加到基本IRB解释器的项目,即使是这些特性的子集。我只是看得不够仔细,还是这只是Ruby社区缺少的东西?在irb的替代品方面没有太多,但是有一些宝石可以为irb添加有用的特性 最值得注意的是,它提供了彩色输出(而不是输入)和超越当前会话的历史记录。有。我从未听说过(流行的)IRB替代方

在python世界中,有许多可选的python解释器添加了一些很酷的附加特性。一个特别有用的例子是bpython,它添加了动态语法突出显示,自动提取文档,并显示实时自动完成信息。在Ruby世界中,我还没有发现任何添加到基本IRB解释器的项目,即使是这些特性的子集。我只是看得不够仔细,还是这只是Ruby社区缺少的东西?

在irb的替代品方面没有太多,但是有一些宝石可以为irb添加有用的特性

最值得注意的是,它提供了彩色输出(而不是输入)和超越当前会话的历史记录。

有。

我从未听说过(流行的)IRB替代方案,但肯定有几个有用的宝石使IRB体验更好:

  • pretty使用缩进和着色打印Ruby对象,在尝试查看嵌套哈希或其他复杂数据结构时非常有用
  • 它还提供了一个方法
    lp
    (查找路径),向您显示Ruby对象从何处获取其方法(类、超类等)
  • 连接您的编辑器和IRB,因此如果您是喜欢交互式开发的类型,它尤其有用。带有
    inf ruby
    的Emacs也适用于此
  • 是一整套IRB增强功能,如制表符补全和语法突出显示。还有,但我个人不使用它,所以不能评论它的特性
编辑


我忘了,这对于在Rails控制台中显示ActiveRecord查询的结果非常有用。

Check out,一个模块化的irb替代方案,设计为可扩展。您还可以从中获得一些答案。

JRuby附带了
jirb\u swing
,它提供了代码完成功能。

真是太巧了。就在昨天宣布了gem,这是一个包含很多很酷的irb增强gem的元gem。它包括:

  • 通过
    wirb
    fancy_irb
  • 很好的IRB提示和IRB的自动缩进
  • 包括stdlib的文件工具:
    ls
    cd
    pwd
    ln\u s
    rm
    mkdir
    touch
    cat
  • 许多调试助手:
    ap
    q
    o
    c
    y
    Object\m
    Object\d
    • ap
      –绝妙的打印
    • q
      –类似于
      p
      ,但在一行上
    • Object#m
      –有序方法列表(采用整数参数:嵌套级别)
    • Object#d
      –放置对象,返回self(使用
      点击
  • “神奇”信息常量:
    Info、OS、RubyVersion、RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.至少?1.9
  • 剪贴板功能:
    复制
    粘贴
    • 也可用:
      copy\u输入
      copy\u输出
      用于会话历史记录
  • 调用
    vim
    (或另一个支持的编辑器)编辑文件,关闭它,并将其加载到当前的irb会话中,由
    interactive_editor
  • irb中活载的另一种方式:草图
  • 突出显示带有
    olorize('string')
    的字符串或带有
    ray('path')
    的文件,由coderay供电
  • 将ActiveRecord数据库条目显示为带有hirb的表
  • reset重新启动
    irb
    或使用
    使用
    方法和
    rvm更改Ruby版本
  • 在加载路径中包含当前目录(出于安全原因,在1.9.2中删除了该目录,但在IRB中非常烦人)
  • 像这样的要求:
    rq:mathn
  • 并使用
    rrq
  • 尝试附带的
    Object 35; ri
    帮助程序,由
    ori
    供电
  • 使用
    玻色子
    访问更多命令–调用命令开始
页面上有很好的截图。它的一个优点是,每个实用程序都可以独立运行,以防您只想挑选一两个特性

2013年更新

自从我写这篇文章以来,它已经成为一种流行的IRB替代品。它的功能不如
irbtools
开箱即用,但它可以通过添加酷特性的插件gems进行扩展。您可以像浏览unix目录一样浏览源代码:

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>
您还可以浏览Ruby文档,发出shell命令,如果您是Rails用户,您可以使用
pry Rails
gem在Rails控制台中获取pry。还有一种方法可以将它连接到Sinatra并与Heroku一起使用

有大量的文档--有一系列的屏幕广播,包括Railscast。这绝对值得研究。

使用Pry:

让我们告诉你:

  • 在运行时启动会话
  • 查看方法源代码
  • 查看方法文档(不使用RI,因此不必预先生成)
  • 跳进跳出不同的语境
  • 语法突出显示
  • 要点整合
  • 查看和重播历史记录
  • 打开编辑器,使用
    edit method obj.my_method
    语法编辑方法
一个更强大、更原始的功能是一个模块化、轻巧的Ruby交互式shell

它和Pry一样,使用Ruby的解析器,因此与Ruby的行为一致,从而减少了bug(例如)

它是模块化的,因此可以很容易地扩展更多的功能


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

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