Pry (Ruby REPL): 如何关闭自动回显

Pry (Ruby REPL): How can I turn automatic echo off

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

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

JSON::parse(very_long_json_string);

这通常会阻止 REPL 回显。但是,当处理非常大的可枚举对象时,即使是一个错误也会产生足够多的输出,从而在屏幕上造成混乱,并在我反射性地中断之前将所有有用的命令历史记录从内存中删除。

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

在 IRB 中有:

conf.echo = false

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

_pry_.config.print = proc {}

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

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

获得