サーチ…


`再コンパイル 'を使ってプロジェクトを再コンパイルする

iex(1)> recompile
Compiling 1 file (.ex)
:ok

`h 'のドキュメントを参照

iex(1)> h List.last

                                 def last(list)

Returns the last element in list or nil if list is empty.

Examples

┃ iex> List.last([])
┃ nil
┃
┃ iex> List.last([1])
┃ 1
┃
┃ iex> List.last([1, 2, 3])
┃ 3

最後のコマンドの値を `v`で得る

iex(1)> 1 + 1
2
iex(2)> v
2
iex(3)> 1 + v
3

参照: `v`で行の値を取得する

前のコマンドの値を `v`で取得する

iex(1)> a = 10
10
iex(2)> b = 20
20
iex(3)> a + b
30

行のインデックスを渡す特定の行を取得することができます:

iex(4)> v(3)
30

現在の行に相対的なインデックスを指定することもできます。

iex(5)> v(-1) # Retrieves value of row (5-1) -> 4
30
iex(6)> v(-5) # Retrieves value of row (5-4) -> 1
10

値は他の計算で再利用できます。

iex(7)> v(2) * 4
80

存在しない行を指定すると、 IExはエラーを発生させます。

iex(7)> v(100) 
** (RuntimeError) v(100) is out of bounds
    (iex) lib/iex/history.ex:121: IEx.History.nth/2
    (iex) lib/iex/helpers.ex:357: IEx.Helpers.v/1

IExコンソールを終了する

  1. 終了するにはCtrl + C、Ctrl + Cを使います
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Ctrl+ \Ctrl+ \てすぐに終了する

「i」の情報を参照

iex(1)> i :ok
Term
  :ok
Data type
  Atom
Reference modules
  Atom
iex(2)> x = "mystring"
"mystring"
iex(3)> i x
Term
  "mystring"
Data type
  BitString
Byte size
  8
Description
  This is a string: a UTF-8 encoded binary. It's printed surrounded by
  "double quotes" because all UTF-8 encoded codepoints in it are printable.
Raw representation
  <<109, 121, 115, 116, 114, 105, 110, 103>>
Reference modules
  String, :binary

PIDの作成

これは前のコマンドからPIDを保存していないときに便利です

iex(1)> self()
#PID<0.138.0>
iex(2)> pid("0.138.0")
#PID<0.138.0>
iex(3)> pid(0, 138, 0)
#PID<0.138.0>

IExの起動時にエイリアスを準備する

よく使うエイリアスをアプリのルートにある.iex.exsファイルに入れると、起動時に.iex.exsがそれらを読み込みます。

alias App.{User, Repo}

永続的な歴史

デフォルトでは、 IExユーザー入力履歴は異なるセッション間で保持されません。

erlang-historyはErlangシェルとIEx両方に履歴サポートを追加します:

git clone [email protected]:ferd/erlang-history.git
cd erlang-history
sudo make install

IEx異なるセッション間でも、上下の矢印キーを使用して以前の入力にアクセスできるようになりました。

エリクシールのコンソールがついているとき...

場合によっては、間違ってシェル内で何かを実行して、永遠に待ってシェルをブロックすることもあります。

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

その場合は、Ctrl + gを押します。わかるでしょ:

User switch command

次のコマンドを順番に入力します。

  • k (シェルプロセスを強制終了する)
  • s (新しいシェルプロセスを開始する)
  • c (新しいシェルプロセスに接続するため)

あなたは新しいErlangシェルで終わるでしょう:

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

Elixirシェルを起動するには、次のように入力します。

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

(最後のドットを忘れないでください!)

そして、新しいElixirシェルプロセスが登場するでしょう:

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

上記は、比較的大きなスニペットをコピー&ペーストしてコンソールを「入力待ち」モードにするときに特に便利です。

不完全な表現から抜け出す

複数行の文字列などの補完が必要なiex入力すると、 iexでは、プロンプトをiexではなく省略記号( ... )に変更して終了を待っていることを示すように変更されます。

式を終了するのを待っているが、式を終了する必要があるかどうかわからない場合や、この入力行を中止したい場合は、コンソール入力として#iex:breakと入力します。これにより、 TokenMissingErrorTokenMissingErrorをスローし、それ以上の入力を待ってキャンセルし、標準の「最上位」のコンソール入力に戻ります。

iex:1> "foo"
"foo"
iex:2> "bar
...:2> #iex:break
** (TokenMissingError) iex:2: incomplete expression

詳細は、IExのドキュメントを参照してください

モジュールまたはスクリプトをIExセッションにロードする

あなたがエリクシルファイルを持っている場合。スクリプトまたはモジュールを使用して、現在のIExセッションにロードしたい場合は、 c/1メソッドを使用できます。

iex(1)> c "lib/utils.ex"
iex(2)> Utils.some_method

これにより、モジュールがコンパイルされ、IExでモジュールがロードされ、すべてのパブリックメソッドを呼び出すことができます。

スクリプトの場合、スクリプトの内容は直ちに実行されます。

iex(3)> c "/path/to/my/script.exs"
Called from within the script!


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow