2013-07-01 3 views
0

나는 아래와 같이 add_and_power.rb이라는 파일을 가지고 있으며 숭고한 텍스트에서 그것을 실행하고 싶다. 입력 2숭고한 텍스트에 Ruby 파일을 실행하는 방법

def add_and_power a,b 
    (a+b)**(a+b) 
end 

puts "First number please? " 
input1 = gets 

puts "Second number please? " 
input2 = gets 

puts "The result is: ", add_and_power(input1.to_i, input2.to_i) 

내가 cmd+b을 실행하지만, 그것은 단지 표시

First number please? 
Second number please? 
The result is: 
1 
[Finished in 0.9s] 

내가 원하는 3 답을 얻을 수 있습니다. Sublime Text 2가 입력을 요청하고 답을 되돌리려면 어떻게해야합니까?

+1

* ST *에서는 편집 할 수 없습니다. 편집자는 이러한 코드를 실행할 수 없습니다. 'IRB' 또는 * 커맨드 라인을 사용하십시오. –

+2

숭고한 텍스트 2를 사용하는 것이 가능합니다. 단지 좋지 않습니다. 열리는 콘솔을 사용하고 거기에 타이핑하면 편집기에서 프로그램 피드백을 볼 수 있습니다. Yech. 아래 내 대답을 참조하십시오. 하지만 가능합니다. REPL을 사용하면 더 잘주고, 터미널에 익숙해집니다. – vgoff

+0

@Priti - ST2에서 완벽하게 가능하며 실제로 SublimeREPL 플러그인을 사용하면 매우 간단합니다. 내 대답은 아래를 참조하십시오. – MattDMo

답변

1

키보드에서 사용자 입력이 필요할 때 프로그램을 실행할 수는 있지만 아주 좋지는 않습니다.

내가 그렇게 할 때, 나는 Sublime을 실행할 때 열리는 터미널로부터 입력을해야하고, 에디터 하단의 프로그램에서 응답을 읽어야한다.

콘솔/터미널에서 프로그램을 실행하기 만하면됩니다.

그래서 대답은 가능하지만 우려가 있습니다. 운영 체제와 함께 버퍼를 관리하는 데 도움이되도록 STDOUT.sync = true 또는 STDOUT.flush을 사용해야 할 수도 있습니다. 그렇게하는 동안 두 가지가 있습니다.

찾고있는 대답이 아닐 수도 있지만 개발자는 콘솔/터미널에서 실행하는 것이 편안해야합니다.

2

ST2에서 코드를 실행하려면 을 통해 사용 가능한 SublimeREPL 플러그인을 확인하십시오. IRB 또는 pry을 사용할 수 있습니다. 훨씬 더 강력합니다. 클래식 REPL (Clojure 또는 LISP)으로 사용할 수 있으며 선택, 라인 범위 또는 블록별로 한 탭의 코드를 다른 탭의 실행중인 REPL로 전송할 수도 있습니다.

내 테스트 중 일부에서 pry REPL은 gets을 통한 입력을 제대로 처리하지 못하지만 그만큼 놀지는 못했습니다. YMMV - 편집 - 아래 AGS에서 언급했듯이 SublimeREPL Ruby에서 대화 형 입력에는 my_var = $stdin.gets을 사용하십시오.

정말 강력한 도구이므로 SublimeREPL을 강력히 권장하며 ST2에는 자체적으로 포함되어 있으므로 프로그램을 저장하고 다시로드 할 필요가 없습니다.

+1

'$ SublimeREPL 루비에서는'gets' 대신'stdin.gets'을 사용합니다. – AGS

관련 문제