2

irb でバグを見つけましたか、それともここで何か不足していますか?

  • 追加の初期化なしで irb を実行し、完了モジュールを対話的にロードすると、すべてが期待どおりに機能します。
irb> 'abc'.str<TAB pressed>
irb> 'abc'.strip
irb> 'abc Def'.str<TAB pressed>
irb> 'abc Def'.strip
  • ただし、 .irbrcに単一行が含まれている場所で実行するirb -f -r irb/completionと、奇妙なことが起こり始めます。irbrequire 'irb/completion'
irb> 'abc'.str<TAB pressed>
irb> 'abc'.strip
irb> 'abc dEf'.str<TAB pressed>
dEf'.strftime  dEf'.string    dEf'.strip     dEf'.strip!
irb> 'abc Def'.str<TAB pressed>
<no possible completions are displayed>

文字列内のスペースとスペースに続く大文字は、何らかの形で補完コードを壊しますが、補完モジュールが非対話的にロードされた場合に限ります!

Ruby 1.9.3p286
Irb 0.9.6
Linux x86_64
4

1 に答える 1

0

デフォルトでは、irb はtab completion有効になっていません。

上記の irb インタラクションの例の最初のセットは、他の方法で機能を有効にしているため、機能しています。wirblegemまたはbondgemまたは他の類似の gem が irb コンテキストにロードされている可能性が非常に高いです。

~/.irbrc ファイルの名前を別の名前に変更して、irb に読み込まれないようにしてから、もう一度やり直してください。タブ補完は機能しないはずです。

でタブ補完動作を確認しました'abc Def'.str。irb タブ補完機能のバグのようです。

irb tab completion のコードを簡単に掘り下げると、なぜこれが起こっているのかまだわかりません。:-)

于 2012-10-28T13:51:36.460 に答える