When I use IEx and make a typo like additional bracket or ", then most of the time I get a syntax error. But there are cases like this one:
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
I cannot make a syntax error and continue from scratch and I have to relaunch entire IEx. Is there any keyboard shortcut or command to skip performing current iex(3) and go to next iex(4)?
Start your line with #iex:break
iex(1)> Enum.each '12345', &(IO.puts(&1")) ...(1)> ... ...(1)> #iex:break ** (TokenMissingError) iex:1: incomplete expression
In general, you can also press Ctrl + G, which will drop you into to the "User switch command" mode with a --->
prompt. From here, you can type i
to interrupt your IEx session, then c
to reconnect to it; IEx will then state ** (EXIT) interrupted
and return to the state it was in immediately before you got stuck. This is a feature of Erlang's shell (erl) that was inherited by IEx.
Example of this in action:
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)>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With