2015-03-31 60 views
4

例如,如果我在Python中编写多行命令,我可以只按ctrl-c如何清除Lua解释器中的多行命令?

在Lua中,对于一行,我可以按ctrl-u清除一行,但对多行功能不起任何作用,等等.Lua中的ctrl-c退出解释程序。

编辑: 举个例子说,我写在Lua的函数:

>> function Test() 
..> print 'Test' 
..> e 

在这一点上,我要写end,我意识到我不想调用的函数Test(),而我想叫它Test123(),那么我怎么会用Python的ctrl-c来突破这个呢?

+0

检查了这一点: http://stackoverflow.com/questions/23187310/how-do-i-clear-the-console-in-a-lua-program – 2015-03-31 14:29:29

+0

我看到了,但是这不是我正在寻找。我想知道如果我在解释器中输入命令,我将如何跳过该行并转到新行,而不是清除屏幕。 – John 2015-03-31 14:31:37

回答

3

您始终可以键入';',这将终止当前的命令。在这种情况下,你会得到一个语法错误(因为语句不完整),但是你可以使用你的命令的一部分来创建一个新的命令。

1

即使当Lua正在阅读多行语句时,它也会通过调用readline逐行读取它。效果是,您只能编辑当前行,而不是整个多行。

同样的事情似乎发生在Python中(当多行语句通过\延续发出信号时)。然而,Python似乎处理与Lua不同的ctrl-c:它以某种方式捕获ctrl-c并返回到提示符,而Lua没有在输入过程中设置ctrl-c的信号处理程序,因此中止程序,这是默认操作。