2014-12-21 27 views
50

Gdy używam iex i zrobić literówkę takiego dodatkowego wspornika lub”, to większość czasu otrzymuję błąd składni Jednak istnieją przypadki, jak ten:.IEx - Jak anulować polecenie multiline?

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 

nie mogę zrobić błąd składni i kontynuować od podstaw i muszę ponownie uruchomić całą iex. Czy jest jakiś skrót klawiszowy lub polecenie, aby pominąć wykonywanie bieżącego iex (3) i przejść do następnego IEX (4)?

Odpowiedz

53

Zacznij swoją linię z #iex:break

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

** (TokenMissingError) iex:1: incomplete expression 
+2

to wspomniano w dokumentach, w rozdziale „Ekspresja w IEX” (przed rozpoczęciem dokumentacja funkcje) http://elixir-lang.org/docs /v1.0/iex/IEx.html – alxndr

+16

Jak intuicyjnie, to byłby mój pierwszy domysł! – Alexander

+0

i jak można przerwać długie działające polecenie i anulować? –

36

Ogólnie można również nacisnąć Ctrl + G, co spowoduje przejście do trybu "polecenia przełącznika użytkownika" z podpowiedzią --->. Stąd możesz wpisać i, aby przerwać sesję IEx, a następnie c, aby ponownie się z nią połączyć; IEx następnie poda ** (EXIT) interrupted i powróci do stanu, w którym znajdował się bezpośrednio przed utknięciem. Jest to cecha powłoki Erlanga (erl), która została odziedziczona przez IEx.

Przykład w działaniu:

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