Scala的CTRL+C不能退出REPL

5

我来自Python背景,刚开始使用Scala。

在Python shell中,当我输入命令并发现其中有拼写错误时,通常会使用Ctrl+C生成键盘中断异常,以便我可以直接输入下一个语句。前一个语句不会被执行,而且我仍然在Python shell中。

但是在Scala REPL中,当我按下Ctrl + C时,我会立即退出Scala REP,这对我很烦人。

有没有办法使REPL像Python shell一样工作?

我正在使用的Scala版本是2.11.7。 我使用的是Mac。


1
只需通过添加一些无意义的字符使您的语句非法,它也不会被执行。 - Ashalynd
2个回答

4
你可以尝试使用 Li Haoyi 的 Ammonite-REPL。除了许多其他的改进之外,它确实捕获了 Ctrl+C

注意 - Ammonite 不支持 Windows。 - Jay

3

我认为在Python REPL中放弃误输入的命令甚至不需要使用Ctrl+C,有几个快捷键可能会让你的生活更轻松,这里有一个链接

Ctrl+U应该是你要找的命令。

删除整行。

基本上,Ctrl+U将删除光标之前的任何内容,如果您正在输入,则应完全放弃现有行。
如果您的光标在中间,则可以先使用Ctrl+E移动到末尾,然后再使用Ctrl+U

我在shell、Python REPL和Scala REPL中进行了测试,它们都起作用。 对于好奇的人:

  • Ctrl+A将移动到开头,
  • Ctrl+K将删除光标后的文本。

@jinxuanWu 如果您认为这很有帮助,能否将答案标记为已接受的解决方案,以便未来的读者更容易找到? - B.Mr.W.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接