【问题标题】:Pry (Ruby REPL): How can I turn automatic echo off撬(Ruby REPL):如何关闭自动回声
【发布时间】:2015-09-04 15:15:55
【问题描述】:

由于 Ruby 支持并行赋值和函数的自动值返回,几乎每个赋值和方法运行最终都会在处理 IRB 和 Pry 等 REPL 时创建输出。

通常我会通过在每行的末尾放置一个分号来防止这种回声效果。例如:

JSON::parse(very_long_json_string);

这通常可以防止 REPL 回显。但是当使用非常大的枚举时,即使是一个错误也会产生足够的输出,从而在屏幕上弄得一团糟,并在我有条件反射之前将我所有有用的命令历史记录在内存之外。

有没有办法在 Pry 中默认关闭这种回声效果?正如下面的 cmets (@Stefan) 中提到的,通过设置 conf.echo = false 可以在 IRB 中实现相同的目的。

【问题讨论】:

  • 在IRB中你可以设置conf.echo = false
  • @Stefan 很高兴知道!有什么方法可以在 Pry 上达到同样的效果?
  • 试试这个 JSON::parse(very_long_json_string);无;

标签: ruby read-eval-print-loop irb pry


【解决方案1】:

在 IRB 中有:

conf.echo = false

在 Pry 中,您可以将 print object 替换为空 proc:

_pry_.config.print = proc {}

您必须存储旧的打印对象才能恢复它。

在这两种情况下,最后一个表达式的结果仍然可以通过 _ 获得

【讨论】:

  • 该死的,你比我快 2 分钟 :D
  • @Stefan 这是一个很棒的技巧,我很感激。有没有办法扭转这种局面?就像通过保存或重新加载原始过程一样?像这样我可以制作一个自定义的 Pry 命令。
  • 哦,我找到了:_pry_.config.print = Pry::DEFAULT_PRINT
猜你喜欢
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 2016-09-01
相关资源
最近更新 更多