36

一个例子是,如果我进入 IRB 并执行以下操作:

jruby-1.6.7 :026 > puts [1,2,3,4,5]
1
2
3
4
5
=> nil 

反正有压制nil吗?问题是,如果我放入一个大型数据结构,它会向其他不相关的返回响应发送垃圾邮件。我对查看调试语句的输出更感兴趣,我在一个块中运行并且必须不断向上滚动并查找真实数据。

4

4 回答 4

60

如果您只想偶尔抑制长输出,请使用;0,例如:

a = [*1..10000];0
# => 0

如果您想普遍抑制它,请使用 ~/.irbrc 文件。IRB.conf[:INSPECT_MODE] 和 IRB.conf[:PROMPT][your_prompt][:RETURN] 控制返回的内容。您可以通过检查 IRB.conf[:PROMPT_MODE] 找出 your_prompt 是什么

例子:

IRB.conf[:PROMPT][:DEFAULT][:RETURN] = "" # suppress return value completely

更改值后,您需要重新启动 irb。

希望有帮助。

于 2012-04-14T02:56:48.417 回答
18

您还可以使用以下命令将输出抑制为irb --simple-prompt --noecho.

查找以下内容:

@ubuntu:~$ irb --simple-prompt
>> puts "hi"
hi
=> nil
>> p "hi"
"hi"
=> "hi"
>> exit
@ubuntu:~$ irb --simple-prompt --noecho
>> puts "hi"
hi
>> p "hi"
"hi"
>> 

希望你会没事的。

我正在使用如下红宝石版本:

@ubuntu:~$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
于 2013-02-15T22:04:56.080 回答
7

来自@Tallboy 死链接

要在 Rails 控制台中抑制返回值,请输入
conf.return_format = ""

默认(打印返回值)
conf.return_format = "=> %s\n"

于 2015-03-26T09:43:27.917 回答
4

我在 irb 中运行以下命令:

irb_context.echo = false

例如

$ irb
> "foo"
=> "foo"
> irb_context.echo = false
> "foo"
>
于 2018-10-17T21:54:57.270 回答