如何在Lua解释器中清除多行命令?

例如,如果我在 Python 中编写多行命令,我只需按 ctrl-c

在 Lua 中,对于一行命令,我可以按 ctrl-u 来清除单行,但这对于多行函数等没有任何作用。Lua 中的 ctrl-c 退出解释器。

编辑: 例如,假设我在 Lua 中编写一个函数:

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

此时,我正要写 end,我意识到我不想把函数命名为 Test(),而是想把它命名为 Test123(),我该如何像 Python 的 ctrl-c 一样跳出这个函数?

点赞
用户1442917
用户1442917

你总是可以键入 ;,这会结束当前命令。在这种情况下,您会收到语法错误(因为语句未完成),但您可以使用命令的部分来创建新命令。

2015-03-31 15:44:12
用户107090
用户107090

即使 Lua 正在读取多行语句,它也是通过调用 readline 逐行读取的。这意味着您只能编辑当前行,而不能编辑整个多行。

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

2015-03-31 23:33:02