當 Elixir 控制檯卡住時......

有時你可能會意外地在 shell 中執行一些東西,最終會永遠等待,從而阻止 shell:

iex(2)> receive do _ -> :stuck end

在這種情況下,請按 Ctrl-g。你會看到的:

User switch command

按順序輸入以下命令:

  • k(殺死 shell 程序)
  • s(啟動一個新的 shell 程序)
  • c(連線到新的 shell 程序)

你將最終進入一個新的 Erlang shell:

Eshell V8.0.2  (abort with ^G)
1>

要啟動 Elixir shell,請鍵入:

'Elixir.IEx.CLI':local_start().

(別忘了最後一點!)

然後你會看到一個新的 Elixir shell 程序:

Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> "I'm back"
"I'm back"
iex(2)>

要轉義等待更多輸入模式(由於未閉合的引號,括號等),請輸入 #iex:break ,然後輸入回車符( ⏎ ):

iex(1)> "Hello, "world"
...(1)>
...(1)> #iex:break
** (TokenMissingError) iex:1: incomplete expression
    
iex(1)>

當複製貼上相對較​​大的片段將控制檯轉為等待更多輸入模式時,上述內容特別有用。