如何在Sublime Text上运行Ruby文件

时间:2013-07-01 07:45:59

标签: ruby sublimetext2

我有一个名为add_and_power.rb的文件,如下所示,并希望在Sublime Text上运行它。

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]

我想输入23来获得答案。如何让Sublime Text 2请求输入并回复?

2 个答案:

答案 0 :(得分:2)

如果您想在ST2中运行代码,请查看可通过SublimeREPL获得的Package Control插件。您可以使用IRBpry,这是更强大的功能。您可以将它用作经典的REPL(想想Clojure或LISP),也可以通过选择,行范围或块将代码从一个选项卡传输到另一个选项卡中的正在运行的REPL。

在我的一些测试中,pry REPL不能很好地处理gets的输入,但是我没有那么多地使用它。 YMMV - 编辑 - 正如AGS在下面提到的那样,在SublimeREPL Ruby中使用my_var = $stdin.gets进行交互式输入。

我强烈推荐SublimeREPL,因为它是一个非常强大的工具,并且在ST2中是自包含的,因此您无需在终端上来回翻转,保存和重新加载程序。

答案 1 :(得分:1)

当您需要从键盘输入用户输入时,可以运行您的程序,但它不是很好。

当我这样做时,我需要从运行Sublime时打开的终端输入,同时还要从编辑器底部的程序中读取响应。

从控制台/终端运行程序会更容易。

所以,答案是,尽管有可能这样做,但仍有顾虑。你可能需要使用STDOUT.sync = trueSTDOUT.flush来帮助管理操作系统的缓冲区,你有两件事要看,这样做...哎呀。

这可能不是您正在寻找的答案,但作为开发人员,您应该可以放心地从控制台/终端运行。