8

有可能发生一些输入错误(在 Ubuntu 终端 - scala -version Scala 代码运行器版本 2.9.1),示例如下所示,其中在参数中输入了 (l: Int) (l: int) 而不是 (l: Int) (l: int)。

 scala> class Rectangle (l:int, w: Int){
 | val length = l
 | val length = w
    .
    .
    .
    few more lines but still ... module Rectangle is not defined. Or sometimes enter command given and error shows up.

无论如何,可以直接编辑/修改输入错误并重新运行代码吗?这将节省大量时间,否则我将使用向上/向下箭头逐行输入。

请指导。

4

3 回答 3

4

我不知道是否有更好的解决方案,但就我而言,我倾向于使用我常用的文本编辑器编写代码片段并使用 REPL 的粘贴模式粘贴它们(您可以通过:paste命令进入粘贴模式) .

于 2012-06-06T11:13:38.207 回答
2

现在,你不能。不过,有 Scala GUI REPL(请参见此处,以及kojo和大型 IDE)允许这种事情。选择其中之一。

于 2012-06-06T16:29:22.493 回答
1

由于基于 JLine 3 的 REPL支持Scala 2.13.2 多行编辑

JLine 3 支持多行编辑、更好的制表符完成 UI 等等。

-Xjline:emacs使用(默认)或配置键绑定-Xjline:vi;禁用-Xjline:off

历史文件现在~/.scala_history_jline3

例如,要尝试使用 vim 键绑定进行多行编辑,请像这样启动 REPL

scala -Xjline:vi

然后输入多行定义并按向上箭头键。注意它是如何给出的

scala> class Foo {
     |   val x = 42
     | }
class Foo

scala> class Foo {
     |   val x = 42
     | }

而不是旧的行为

scala> class Foo {
     |   val x = 42
     | }
defined class Foo

scala> }
于 2020-03-29T00:49:54.470 回答