2012-03-04 7 views
5

このコードをirbプロンプトに貼り付けると、 の行if trueの後ろに現在のディレクトリのリストが表示されます。出力の奇妙なirb動作、コンテンツの現在のディレクトリを表示

def some_method() 

    if true 
     raise StandardError 
    end 

end 

例:

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

私はirb 0.9.5(05/04/13)ruby 1.8.7 (2011-12-28 patchlevel 357)を使用しています。

これはバグですか?そうではありませんか?

+1

これは非常に奇妙です。セッションはその後も引き続き機能しますか? –

答えて

4

次の行は、その中にタブ文字を持っています:

 raise StandardError 

irbは、Tabキーをタブ補完のために使用されていることを意味しreadlineを使用しています。 [Double]タブには利用可能なすべてのオプションが表示されます。

この動作を確認するには、irbを起動し、タブキーを2回押してください。

無効にする方法については、https://superuser.com/questions/37148/how-to-disable-double-tab-to-show-available-commands-in-linux-consoleを参照してください。

+2

これは、ソフトタブを使用するより面白くて難解な賛成派の1つにつながります。 –

1

Don Cruickshanksが言及した理由のため、テキストエディタでタブをスペースに変換するオプションを設定する必要があります。