Ответ 1
Начните свою строку с #iex:break
iex(1)> Enum.each '12345', &(IO.puts(&1"))
...(1)> ...
...(1)> #iex:break
** (TokenMissingError) iex:1: incomplete expression
Когда я использую 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, который переместит вас в режим "User switch command" с приглашением --->
. Отсюда вы можете ввести i
, чтобы прервать сеанс IEx, затем c
, чтобы повторно подключиться к нему; Затем IEx укажет ** (EXIT) interrupted
и вернется к состоянию, в котором он находился, прежде чем вы застряли. Это особенность оболочки Erlang (erl), которая была унаследована IEx.
Пример этого в действии:
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)>