2012-10-28 3 views
2

irb에서 버그를 발견 했습니까? 아니면 여기에 뭔가 빠졌습니까? 비 결정적 IRB 완료 동작?

irb> 'abc'.str<TAB pressed> 
irb> 'abc'.strip 
irb> 'abc Def'.str<TAB pressed> 
irb> 'abc Def'.strip 
  • 그러나 irb -f -r irb/completion 또는 irb 곳으로 실행할 때 : IRB가 대화 형으로로드 별도의 초기화 및 완료 모듈없이 실행됩니다

    • 는 모든 것이 예상대로 작동 .irbrc는 단독 라인을 포함하지 않습니다 require 'irb/completion' 이상한 것들 시작 t 오 일 : 문자열와 대문자 편지에서
    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 
    

답변

0

기본적으로 IRB는 tab completion을 사용할 수 없습니다.

위의 irb 상호 작용 예제의 첫 번째 세트는 다른 방식으로 활성화 된 기능을 가지고 있기 때문에 작동합니다. 아마도 wirble gem 또는 bond gem 또는 다른 유사한 보석이 irb 컨텍스트에로드되고 있습니다.

~/.irbrc 파일의 이름을 irb에로드하지 않도록 다른 이름으로 바꾼 다음 다시 시도하십시오. 탭 완성은 작동하지 않아야합니다.

'abc Def'.str으로 탭 완성 동작을 확인했습니다. irb 탭 완성 기능의 버그 인 것 같습니다.

code for irb tab completion을 통해 간단히 파고 드는 이유는 무엇인지 아직 알 수 없습니다. :-)

+0

irb 상호 작용의 첫 번째 세트는 초기화가 없습니다. .irbrc를로드하지 않고. 앞서 언급했듯이 완료 모듈은 대화 형으로로드되었으므로 프롬프트가 나타나면'require 'irb/completion'' 만 입력하면됩니다. 요점은이 방법으로 **로드 될 때 ** 예상대로 작동하므로 동일한 모듈에 대한 동작에 차이가 있습니다! –