Ruby 有哪些替代IRB的方法?
在python世界中,有许多可选的python解释器添加了一些很酷的附加特性。一个特别有用的例子是bpython,它添加了动态语法突出显示,自动提取文档,并显示实时自动完成信息。在Ruby世界中,我还没有发现任何添加到基本IRB解释器的项目,即使是这些特性的子集。我只是看得不够仔细,还是这只是Ruby社区缺少的东西?在irb的替代品方面没有太多,但是有一些宝石可以为irb添加有用的特性 最值得注意的是,它提供了彩色输出(而不是输入)和超越当前会话的历史记录。有。我从未听说过(流行的)IRB替代方案,但肯定有几个有用的宝石使IRB体验更好:Ruby 有哪些替代IRB的方法?,ruby,irb,Ruby,Irb,在python世界中,有许多可选的python解释器添加了一些很酷的附加特性。一个特别有用的例子是bpython,它添加了动态语法突出显示,自动提取文档,并显示实时自动完成信息。在Ruby世界中,我还没有发现任何添加到基本IRB解释器的项目,即使是这些特性的子集。我只是看得不够仔细,还是这只是Ruby社区缺少的东西?在irb的替代品方面没有太多,但是有一些宝石可以为irb添加有用的特性 最值得注意的是,它提供了彩色输出(而不是输入)和超越当前会话的历史记录。有。我从未听说过(流行的)IRB替代方
- pretty使用缩进和着色打印Ruby对象,在尝试查看嵌套哈希或其他复杂数据结构时非常有用李>
- 它还提供了一个方法
(查找路径),向您显示Ruby对象从何处获取其方法(类、超类等)lp
- 连接您的编辑器和IRB,因此如果您是喜欢交互式开发的类型,它尤其有用。带有
的Emacs也适用于此inf ruby
- 是一整套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
–放置对象,返回self(使用Object#d
)点击
- “神奇”信息常量:
Info、OS、RubyVersion、RubyEngine
OS.windows?
RubyEngine.jruby?
RubyVersion.is.至少?1.9
- 剪贴板功能:
和复制
粘贴
- 也可用:
和copy\u输入
用于会话历史记录copy\u输出
- 也可用:
- 调用
(或另一个支持的编辑器)编辑文件,关闭它,并将其加载到当前的irb会话中,由vim
interactive_editor
- irb中活载的另一种方式:草图
- 突出显示带有
的字符串或带有olorize('string')
的文件,由coderay供电ray('path')
- 将ActiveRecord数据库条目显示为带有hirb的表
- 用
或使用reset重新启动
irb
使用
方法和
rvm更改Ruby版本代码>
- 在加载路径中包含当前目录(出于安全原因,在1.9.2中删除了该目录,但在IRB中非常烦人)
- 像这样的要求:
rq:mathn
- 并使用
rrq
- 尝试附带的
帮助程序,由Object 35; ri
供电李>ori
- 使用
访问更多命令–调用命令开始玻色子
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
截至2016年,它仍然在积极维护。我制作了一个纯Ruby控制台,灵感来自谷歌Chrome的JavaScript