IRB:在不退出整个 IRB 会话的情况下退出更改的绑定 (`cb`)?

IRB: exit a changed binding (`cb`) without exiting entire IRB session?

在 IRB 会话中,我可以使用 cb(更改绑定)进入对象,但如何退出?如果我使用 exit 它会退出整个 IRB 会话。

$ irb
❯ o = Object.new
=> #<Object:0x007fc8a32258a8>
❯ cb(o)
=> #<Object:0x007fc8a32258a8>
❯ self
=> #<Object:0x007fc8a32258a8>
❯ exit
$

就此而言,如何在开始后继续导航对象?我发现我可以通过首先扩展 IRB::ExtendCommandBundle 从我所在的任何对象访问 cb 方法,但是有没有更简单的方法?

您最好的选择可能是改用撬。它是一个非常强大的调试器,也可用于 irb 的大部分用途。我用它来检查 rails 应用程序中的代码和对象。

https://github.com/pry/pry

通过gem install pry

获取

那么你可以这样做:

$ pry
[1] pry(main)> cd ""
[2] pry(""):1> self
=> ""
[3] pry(""):1> exit
=> ""
[4] pry(main)> exit
$

还有很多很多。