题
在Python世界中,有许多替代Python口译员添加了很酷的其他功能。一个特别有用的示例是BPYTHON,它添加了动态语法突出显示,自动提取文档并显示实时自动完成信息。在Ruby World,我还没有发现任何为基本IRB解释器增加的项目,甚至是这些功能的一个子集。我只是不够努力,还是这只是Ruby社区缺乏的?
解决方案
多么巧合。 红宝石 就在昨天宣布 irbtools 宝石,这是一种元游戏,其中包含许多酷炫的IRB增强宝石。它包含:
- 着色并输出为注释
wirb
和fancy_irb
- 不错的IRB提示和IRB的汽车凹痕
- 包括stdlib的fileutils:
ls
,cd
,pwd
,ln_s
,rm
,mkdir
,touch
,cat
- 许多调试助手:
ap
,q
,o
,c
,y
,Object#m
,Object#d
ap
- 很棒的_printq
- 像p
, ,但在一行Object#m
- 订购的方法列表(获取整数参数:嵌套级别)Object#d
- 放置对象,返回自我(使用tap
)
- “魔法”信息常数:
Info, OS, RubyVersion, RubyEngine
OS.windows?
RubyEngine.jruby?
RubyVersion.is.at_least? 1.9
- 剪贴板功能:
copy
和paste
- 也提供:
copy_input
和copy_output
用于会话历史
- 也提供:
- 称呼
vim
(或另一个受支持的编辑器)要编辑文件,将其关闭,然后将其加载到您当前的IRB会话中,由interactive_editor
- 另一种直播加载到IRB的方式:草图
- 突出显示一个字符串
olorize('string')
或带有的文件ray('path')
, ,由编码器提供支持 - 显示ActivereCord数据库条目作为表格
hirb
- 重新开始
irb
和reset!
或更改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+兼容。