1

我有一个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 要求输入并返回答案?

4

2 回答 2

2

如果您想在 ST2 中运行代码,请查看SublimeREPL可通过Package Control获得的插件。您可以使用IRBor pry,它的功能要强大得多。您可以将其用作经典的 REPL(想想 Clojure 或 LISP),您还可以通过选择、行范围或块将代码从一个选项卡转移到另一个选项卡中正在运行的 REPL。

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

我强烈推荐 SublimeREPL,因为它是一个非常强大的工具,并且在 ST2 中是自包含的,因此您不必一直在终端来回切换、保存和重新加载程序。

于 2013-07-01T14:48:57.740 回答
1

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

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

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

所以,答案是,虽然有可能这样做,但还是有顾虑。您可能需要使用STDOUT.sync = trueSTDOUT.flush帮助管理操作系统的缓冲区,您有两件事要查看,同时这样做......呸。

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

于 2013-07-01T08:23:57.460 回答