elixir

elixir - IEx-¿Cómo cancelar el comando multilínea?



(2)

Cuando uso IEx y hago un error tipográfico como paréntesis adicional o ", la mayoría de las veces aparece un error de sintaxis. Pero hay casos como este:

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

No puedo cometer un error de sintaxis y continuar desde cero y tengo que relanzar todo IEx. ¿Hay algún método abreviado de teclado o comando para omitir la ejecución de iex (3) actual y pasar al siguiente iex (4)?


Comience su línea con #iex:break

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


En general, también puede presionar Ctrl + G , que lo llevará al modo "Comando de cambio de usuario" con un indicador ---> . Desde aquí, puede escribir i para interrumpir su sesión IEx, luego c para volver a conectarse; A continuación, IEx indicará ** (EXIT) interrupted y volverá al estado en el que se encontraba inmediatamente antes de que se atascara. Esta es una característica del shell de Erlang (erl) que fue heredada por IEx.

Ejemplo de esto en acción:

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