在Python世界中,有许多替代Python口译员添加了很酷的其他功能。一个特别有用的示例是BPYTHON,它添加了动态语法突出显示,自动提取文档并显示实时自动完成信息。在Ruby World,我还没有发现任何为基本IRB解释器增加的项目,甚至是这些功能的一个子集。我只是不够努力,还是这只是Ruby社区缺乏的?

有帮助吗?

解决方案

多么巧合。 红宝石 就在昨天宣布 irbtools 宝石,这是一种元游戏,其中包含许多酷炫的IRB增强宝石。它包含:

  • 着色并输出为注释 wirbfancy_irb
  • 不错的IRB提示和IRB的汽车凹痕
  • 包括stdlib的fileutils: ls, cd, pwd, ln_s, rm, mkdir, touch, cat
  • 许多调试助手: ap, q, o, c, y, Object#m, Object#d
    • ap - 很棒的_print
    • q - 像 p, ,但在一行
    • Object#m - 订购的方法列表(获取整数参数:嵌套级别)
    • Object#d - 放置对象,返回自我(使用 tap)
  • “魔法”信息常数: Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • 剪贴板功能: copypaste
    • 也提供: copy_inputcopy_output 用于会话历史
  • 称呼 vim (或另一个受支持的编辑器)要编辑文件,将其关闭,然后将其加载到您当前的IRB会话中,由 interactive_editor
  • 另一种直播加载到IRB的方式:草图
  • 突出显示一个字符串 olorize('string') 或带有的文件 ray('path'), ,由编码器提供支持
  • 显示ActivereCord数据库条目作为表格 hirb
  • 重新开始 irbreset! 或更改Ruby版本 use 方法和 rvm!
  • 在加载路径中包括当前目录(出于安全原因以1.9.2删除,但在IRB中很烦人)
  • 较短的需要这样的要求: rq:mathn
  • 并与 rrq
  • 尝试包含 Object#ri 助手,由 ori!
  • 访问更多的命令 boson - 调用命令开始

有不错的屏幕截图 irbtools 页。关于它的一件好事是,每个公用事业公司都可以独立存在,以防您只想挑选一两个功能。

2013年更新

自从我写这篇文章以来 已成为流行的IRB替代品。它不做那么多 irbtools 开箱即用,但它可以用插件宝石扩展,从而添加凉爽的功能。您可以像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 宝石可以在您的栏杆控制台中撬。还有一种方法可以将其连接到Sinatra并将其与Heroku一起使用。

有足够的文档 - 包括Railscast在内的许多屏幕截图。绝对值得研究。

其他提示

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

让你:

  • 在运行时开始会议
  • 查看方法源代码
  • 查看方法文档(不使用RI,因此您不必预先生成它)
  • 突然进出不同的情况
  • 语法突出显示
  • 要点整合
  • 查看和重播历史
  • 打开编辑器以编辑方法使用 edit-method obj.my_method 句法

一吨更伟大的原始功能

我从未听说过IRB的(流行)替代品,但是肯定有几种有用的宝石使IRB体验变得更好:

  • 很棒的_print 漂亮的打印带有凹痕和着色的红宝石对象,在尝试查看嵌套哈希或其他复杂的数据结构时非常有用。
  • Looksee 也很棒,它提供了一种方法 lp (查找路径)向您显示Ruby对象从(类,超类等)获取其方法的位置。
  • 草图 连接您的编辑器和IRB,因此,如果您是喜欢互动开发的类型,则特别有用。与 inf-ruby 也有好处。
  • Wirble 是一组IRB增强功能,例如TAB完成和语法突出显示。还有 公用带, ,但我个人不使用它,因此无法评论其功能。

编辑

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

jruby船 jirb_swing, ,提供代码完成。

IRB替代方案的领域不多,但是有几颗宝石为IRB添加了有用的功能。

最为显着地 Wirble, ,除其他外,这还为您提供了彩色输出(虽然输入而不是输入)和超出当前会话的历史记录。

查看 ripl, ,一种模块化IRB替代方案,设计为可扩展。您也可能会从中得到一些答案 Ruby有类似Bpython吗?.

肋骨 是模块化和轻红宝石互动壳。

它像pry一样,使用Ruby的解析器,因此与Ruby具有一致的行为,因此更少的错误(例如 https://stackoverflow.com/a/39271791/474597)

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

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

我制作了一个纯净的红宝石控制台,启发了Google Chrome的JavaScript控制台。

https://github.com/sancarn/rubyconsole

当我不断发现使用当前算法的错误时,它仍然主要是一个WIP项目,但是我将其构建为1.9.3+兼容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top