如何在IRB/Rails控制台中抑制返回值的输出?

ran*_*its 31 ruby ruby-on-rails irb

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

jruby-1.6.7 :026 > puts [1,2,3,4,5]
1
2
3
4
5
=> nil 
Run Code Online (Sandbox Code Playgroud)

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

ape*_*ros 53

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

a = [*1..10000];0
# => 0
Run Code Online (Sandbox Code Playgroud)

如果要一般地抑制它,请使用〜/ .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
Run Code Online (Sandbox Code Playgroud)

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

希望有所帮助.


Aru*_*hit 16

您也可以使用以下命令来抑制输出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"
>> 
Run Code Online (Sandbox Code Playgroud)

希望你会好起来的.

我使用ruby版本如下:

@ubuntu:~$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)


Iva*_*hau 6

来自@Tallboy死链接

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

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


sch*_*pet 6

我在 irb 中运行以下命令:

irb_context.echo = false
Run Code Online (Sandbox Code Playgroud)

例如

$ irb
> "foo"
=> "foo"
> irb_context.echo = false
> "foo"
>
Run Code Online (Sandbox Code Playgroud)