【问题标题】:why does irb freak out sometimes when I paste in a script?为什么有时当我粘贴脚本时 irb 会发疯?
【发布时间】:2012-01-18 19:59:48
【问题描述】:
def load_lib
    path = File.join(File.dirname(__FILE__), 'lib')
    failures = []
    Dir.glob("#{path}/**/*.rb").each {  |file|
        puts "loading: #{file} ... "
    }
end 

有剧本。当我单独放入每一行时,load_lib 函数可用并且工作正常。但是当我将它粘贴到一大块的 irb 中(Ubuntu 终端,Sh Ctrl C)时,它会在 Dir.glob(... 行中吓坏并显示:

Display all 931 possibilities? (y or n)
!
!=
!~
<=>
.... [dozens of lines in this vein]

然后根本没有创建该方法。

当我一次将其粘贴到一行时,会发生以下情况(成功):

>>  def load_lib
>>     path = File.join(File.dirname(__FILE__), 'lib')
>>     failures = []
>> Dir.glob("#{path}/**/*.rb").each {  |file|
?> puts file
>> }
>> end
=> nil
>> load_lib
./lib/alpha_processor.rb
./lib/development_mail_interceptor.rb
./lib/service_processors/beta_processor.rb

在粘贴 []{} 时,irb 是否不喜欢它们?

【问题讨论】:

标签: ruby irb


【解决方案1】:

这是因为您的源文件中有 TAB 字符。用空格缩进。 :-)

【讨论】:

  • 更准确地说,制表符触发了irb的自动补全。粘贴代码时显然不想要。到目前为止,Ruby 社区已经对 2 个空格缩进进行了标准化,所以请使用它。
  • @AlexWayne:感谢您的澄清。应该自己做的。
  • 制表符在irb 中用于自动完成,所以有时剪切和粘贴会触发此问题。我认为有一个关闭它的选项,但我只能找到有关如何打开它的参考。
  • 啊,做到了。不过很奇怪,因为制表符位于行首。哦,等等,我现在看到了。
  • 但是有一个理由——这里展示了——讨厌标签
猜你喜欢
  • 2016-07-20
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多