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)?
2 ответа:
начните строку с
#iex:break
iex(1)> Enum.each '12345', &(IO.puts(&1")) ...(1)> ... ...(1)> #iex:break ** (TokenMissingError) iex:1: incomplete expression
В общем, вы также можете нажать Ctrl + G, который приведет вас в режим "команда переключения пользователя" с помощью
--->
запрос. Отсюда, вы можете ввести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)>