奇怪的irb行为,列出内容当前目录

XoR*_*XoR 5 ruby irb

当我在irb提示符中粘贴此代码时,我获得了当前目录的列表if true.

def some_method()

  if true
        raise StandardError
    end

end
Run Code Online (Sandbox Code Playgroud)

输出示例:

irb(main):151:0> def some_method()
irb(main):152:1> 
irb(main):153:1*   if true
irb(main):154:2> 
.Skype/                          .m2/                             Desktop/
...
Run Code Online (Sandbox Code Playgroud)

我用irb 0.9.5(05/04/13)ruby 1.8.7 (2011-12-28 patchlevel 357).

这是一个错误,还是其他什么?

Don*_*ank 4

以下行将包含制表符:

        raise StandardError
Run Code Online (Sandbox Code Playgroud)

irb使用readline这意味着 Tab 键用于 Tab 补全。双选项卡将显示所有可用选项。

要查看其实际效果,只需启动irb并按两次 Tab 键即可。

有关如何禁用它的指导,请参阅https://superuser.com/questions/37148/how-to-disable-double-tab-to-show-available-commands-in-linux-console 。

  • 这导致了使用软选项卡的更有趣和深奥的优点之一。 (2认同)