【问题标题】:How to suppress the output of return value in IRB/Rails Console?如何在 IRB/Rails 控制台中抑制返回值的输出?
【发布时间】:2012-04-14 02:32:02
【问题描述】:

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

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

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

【问题讨论】:

标签: ruby-on-rails ruby irb


【解决方案1】:

如果您只是想偶尔抑制长输出,请使用;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。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您也可以使用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"
    >> 
    

    希望你会没事的。

    我正在使用如下 ruby​​ 版本:

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

    【讨论】:

      【解决方案3】:

      来自@Tallboy 死链接

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

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

      【讨论】:

        【解决方案4】:

        我在 irb 中运行以下命令:

        irb_context.echo = false
        

        例如

        $ irb
        > "foo"
        => "foo"
        > irb_context.echo = false
        > "foo"
        >
        

        【讨论】:

        • 请注意,这也可以很容易地重新打开,例如irb_context.echo = false; "foo"; irb_context.echo = true,它可以方便地仅在某些代码段上禁用返回值。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        相关资源
        最近更新 更多