irb - autoindent onnoprompt错误

时间:2012-10-18 13:27:23

标签: ruby irb

我喜欢在irb上使用--noprompt选项,特别是当我想要从中复制代码并将其粘贴到其他地方时。但是,当.irbrc文件中出现以下内容时会发生错误:

IRB.conf[:AUTO_INDENT] = true

irb启动时发生以下错误:

/Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:280:in `dup': can't dup NilClass (TypeError)
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:280:in `prompt'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:129:in `block in eval_input'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:206:in `call'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:206:in `prompt'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:220:in `initialize_input'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:227:in `each_top_level_statement'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:69:in `catch'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:69:in `start'
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'

JRuby中也会出现错误,但堆栈跟踪当然有点不同。

这是一个错误,对吗?人们会认为不合适的配置设置会更优雅地处理,至少在更高级别报告错误的性质,以便用户知道如何解决它。或者可以说,在不存在的提示中指定缩进是开发人员的错?

- 基思

1 个答案:

答案 0 :(得分:0)

这不是错误。

如果您希望在特殊情况下忽略.irbrc文件(例如当您需要--noprompt时),那么您可能还希望提供-f标志以禁止加载您的.irbrc文件。

在提供矛盾的选项时,你会遇到问题。

TLDR;

irb -f --noprompt