2010-10-07 83 views
31

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

回答

28

真是巧合。 Rubyflow刚刚在昨天宣布了irbtools宝石,这是一个包含许多酷irb增强​​宝石的元宝石。它包含:

  • 彩色化,并通过wirbfancy_irb
  • 尼斯IRB提示和IRB的自动缩进
  • 包括STDLIB的文件实用程序注释输出:lscdpwdln_srmmkdirtouchcat
  • 许多调试助手:apqocyObject#mObject#d
    • ap - awesome_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')文件,搭载coderay
  • 显示ActiveRecord的数据库条目表与hirb
  • 重启irbreset!或改变Ruby的版本与use方法和rvm!
  • 包括负载路径中的当前目录(在1.9.2出于安全原因被删除,但在IRB烦)
  • 较短的要求是这样的:rq:mathn
  • 并与rrq
  • rerquiring尝试包括Object#ri帮手,搭载ori
  • 获得了很多的命令与boson - 命令拨打电话上手

有在irbtools页面上漂亮的屏幕截图。关于它的一个好处是,每个公用程序都可以独立运行,以防止您只想选择一个或两个功能。

2013更新

自从我写了这个,Pry已成为一种流行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宝石来获得撬你Rails控制台。还有一种方法可以将它与Sinatra挂钩并与Heroku一起使用。

有足够的文档 - 有一堆屏幕录像,包括Railscast。这绝对值得一看。

+3

这似乎过时了。下面提到的Pry已经获得了足够的动力,似乎是irb的首选替代品。 – 2011-10-17 14:40:46

+3

感谢您使用Pry的指针。看起来不错!它与irbtools有着不同的关注点 - 它会进行更多的代码自省。我不再羡慕Python的REPL。 :)但是,我不认为irbtools已过时,因为它已更新为Rails 3并仍然适用于我。 – 2011-10-17 18:33:39

+2

更新的项目主页:https://github.com/janlelis/irbtools – 2012-07-07 04:04:21

1

irb的替代品领域并不多,但有几个宝石为irb增加了有用的功能。

最值得注意的是wirble,除此之外,它还为您提供了彩色输出(尽管未输入)以及超出当前会话的历史记录。

+0

wirble给你irb自动补全是不正确的。 Irb随身携带。 wirble只需要它:要求'irb/completion' – cldwalker 2010-10-07 19:37:42

+0

@user:谢谢,修正它。 – sepp2k 2010-10-07 19:46:12

2
+0

还有很多工作要做。也就是说,包括我刚刚推出的0.6版本,DietRB具有以下功能:更清晰的实现,代码和文件路径完成,Wirble模板支持的着色以及自动缩进。 https://rubygems.org/gems/dietrb – alloy 2010-11-01 23:36:45

+0

哦,并注意它只针对MRI 1.9和MacRuby,因为它使用了Ripper。 – alloy 2010-11-01 23:38:19

3

我从来没有听说过(流行)的替代IRB的,但当然有一些有用的宝石,使内部评级经验要好很多:

  • awesome_print漂亮的打印红宝石缩进和着色对象,当试图查看嵌套散列或其他复杂的数据结构时非常有用。
  • looksee也非常棒,它提供了一个方法lp(查找路径),它显示了Ruby对象从哪里(类,超类等)获取它的方法。
  • Sketches连接你的编辑器和IRB,所以它特别有用,如果你是喜欢交互式开发的类型。 Emacs与inf-ruby也是很好的。
  • Wirble是一整套IRB增强功能,如标签填充和语法高亮显示。也有Utility Belt,但我不亲自使用它,所以不能评论它的功能。

编辑

Hirb,这对于例如非常有用在Rails控制台中显示ActiveRecord查询的结果。

2

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

33

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

让我们你:在运行时

  • 启动会话
  • 视图法源代码
  • 视图方法的文档(不那么你不必预先生成使用RI它)
  • 弹出和弹出不同的上下文
  • 语法突出显示
  • 要点整合
  • 视图和重播历史
  • 打开的编辑器使用edit-method obj.my_method语法

一吨伟大的和原有的特色

0

rib是一个模块化的光红宝石交互shell编辑方法。

它,像撬,使用Ruby的解析器所以具有红宝石因而更少的错误(例如https://stackoverflow.com/a/39271791/474597)一致的行为

它是模块化的,因此可以很容易地将其与更多的功能延伸。

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