【问题标题】:Reset IRB Console重置 IRB 控制台
【发布时间】:2012-05-03 12:59:15
【问题描述】:

如何告别所有 irb 会话中定义的常量、对象和类似的东西,以返回一个全新的状态? “in”是指不操纵子会话。

【问题讨论】:

  • 退出并重新启动? irb 的重量还不足以担心重新启动它。

标签: ruby console


【解决方案1】:

键入

exec($0)

在您的 irb 控制台会话中。

【讨论】:

  • +1 大声笑,很棒的答案。并使用 exec $0 保存一个字符和你的 shift 键
  • exec __FILE__ 会更好,因为它也会重新加载使用 IRB 拉入的任何脚本:在 rails console 中提供 exec $0,您会明白我的意思。但是,这些命令不会保留在执行 irb(例如 irb --prompt simple)时传递的任何选项,并且它们都会在子会话中失败。
  • 非常聪明。当然我不确定这是否比CTRL+D、↑、回车更快。
  • 也许这对您有帮助? stackoverflow.com/questions/4749476/… 制作自定义 irb 可能是唯一的方法。
  • 自定义确实有效;完全自定义的 IRB 将是矫枉过正。我最终向irbrc 添加了一个函数,该函数创建/破坏了我可以玩的隔离命名空间。
【解决方案2】:

我正在使用 Fedora 16,exec $0 不适合我。但我找到了以下方法:

CTRL+L 或 system("clear") 或 system("reset")

【讨论】:

  • system("command") 实际上在子shell 中执行command。手册页告诉我们clear 将简单地“清除终端屏幕”。虽然reset 带来了更多的花里胡哨,但它仍然只产生了表面上的变化。在 IRB 会话中实例化的任何内容仍然存在于内存中。 Sunny J 的建议巧妙地执行了最初用于跳转到 IRB 的命令。但是,我有点困惑,为什么你会遇到麻烦。你在puts $0 看到了什么输出?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2011-05-06
  • 2019-02-09
相关资源
最近更新 更多