IEx - How to cancel multiline command?

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)> 

Tags:

Elixir