IEx – 如何取消多行命令?

当我使用IEx,并打字错误像附加括号或“,那么大多数时候我得到一个语法错误,但有这样的例子:

iex(3)> Enum.each '12345', &(IO.puts(&1")) ...(3)> end ...(3)> ) ...(3)> ' ...(3)> end ...(3)> "" ...(3)> ... ? How to produce syntax error ? ...(3)> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution 

我不能犯一个语法错误,并从头开始,我必须重新启动整个IEx。 有没有任何键盘快捷方式或命令跳过执行当前iex(3)并转到下一个iex(4)?

#iex:break开始行

 iex(1)> Enum.each '12345', &(IO.puts(&1")) ...(1)> ... ...(1)> #iex:break ** (TokenMissingError) iex:1: incomplete expression 

一般情况下,你也可以按下Ctrl-G,这会使用--->提示符进入“用户切换命令”模式。 从这里开始,你可以inputi打断你的IEx会话,然后c重新连接它; 然后,IEx将声明** (EXIT) interrupted并返回到卡住前的状态。 这是由IExinheritance的Erlang shell(erl)的一个特性。

这个实例的例子:

 iex(3)> Enum.each '12345', &(IO.puts(&1")) ...(3)> end ...(3)> ) ...(3)> ' ...(3)> end ...(3)> "" ...(3)> <-- Ctrl-G goes here (not shown normally) User switch command --> i --> c ** (EXIT) interrupted iex(3)>