Ruby 为什么有时候我粘贴脚本时irb会发疯?

Ruby 为什么有时候我粘贴脚本时irb会发疯?,ruby,irb,Ruby,Irb,这是剧本。当我将每一行单独放入时,load_lib函数可用并且工作正常。但是当我把它粘贴到irb的一大块(Ubuntu终端,shCtrl-C)中时,它在Dir.glob(…行)处会崩溃,并显示如下: def load_lib path = File.join(File.dirname(__FILE__), 'lib') failures = [] Dir.glob("#{path}/**/*.rb").each { |file| puts "loadin

这是剧本。当我将每一行单独放入时,
load_lib
函数可用并且工作正常。但是当我把它粘贴到irb的一大块(Ubuntu终端,shCtrl-C)中时,它在
Dir.glob(…
行)处会崩溃,并显示如下:

def load_lib
    path = File.join(File.dirname(__FILE__), 'lib')
    failures = []
    Dir.glob("#{path}/**/*.rb").each {  |file|
        puts "loading: #{file} ... "
    }
end 

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

这是因为源文件中有制表符。用空格缩进。:-

更准确地说,制表符触发irb的自动完成。当粘贴到代码中时,您显然不希望这样做。到目前为止,Ruby社区已经对2空间缩进进行了标准化,所以请使用它。@AlexWayne:谢谢你的澄清。我应该自己做的。选项卡用于在
irb
中自动完成,所以有时剪切和粘贴会触发此操作。我认为有一个选项可以关闭它,但我只能找到如何打开它的参考资料。啊,就是这样。但奇怪的是,标签位于行的开头。哦,等等,我现在明白了。但这里有一个理由——证明了——以另一种方式憎恨塔布森,irb可能会在你身上犯错
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