Sök…


Återkompilera projektet med "rekompilera"

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

Se dokumentation med `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

Få värde från sista kommando med `v`

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

Se också: Få värdet på en rad med `v`

Få värdet på ett tidigare kommando med `v`

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

Du kan få en specifik rad som passerar radens index:

iex(4)> v(3)
30

Du kan också ange ett index i förhållande till den aktuella raden:

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

Värdet kan återanvändas i andra beräkningar:

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

Om du anger en icke-befintlig rad kommer IEx att ta upp ett fel:

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

Avsluta IEx-konsolen

  1. Använd Ctrl + C, Ctrl + C för att avsluta
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Använd Ctrl+ \ att omedelbart avsluta

Se information med `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

Skapa PID

Detta är användbart när du inte lagrade PID från ett tidigare kommando

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>

Ha dina alias redo när du startar IEx

Om du lägger dina vanliga alias i en .iex.exs fil i roten till din app kommer IEx att ladda dem åt dig vid start.

alias App.{User, Repo}

Ihållande historia

Som standard kvarstår användarinmatningshistorik i IEx inte i olika sessioner.

erlang-history ger både historiskt stöd till både Erlang-skalet och IEx :

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

Du kan nu komma åt dina tidigare ingångar med upp- och nedpiltangenterna, även över olika IEx sessioner.

När Elixir-konsolen sitter fast ...

Ibland kan du av misstag köra något i skalet som slutar vänta för evigt och därmed blockera skalet:

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

Tryck i så fall på Ctrl-g. Du kommer se:

User switch command

Ange dessa kommandon i ordning:

  • k (för att döda skalprocessen)
  • s (för att starta en ny skalprocess)
  • c (för att ansluta till den nya skalprocessen)

Du hamnar i ett nytt Erlang-skal:

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

Om du vill starta ett Elixir-skal skriver du:

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

(glöm inte den sista punkten!)

Då ser du en ny Elixir-skalprocess:

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

För att fly från "väntar på mer-inmatning" -läget (på grund av otäckt citattecken, fäste osv.), #iex:break , följt av vagnretur ( ):

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

ovanstående är speciellt användbart när kopiering och klistra in ett relativt stort utdrag vrider konsolen till "väntar på mer-ingång" -läget.

bryta sig ur ofullständigt uttryck

När du har skrivit in något i IEx som förväntar sig ett slutförande, till exempel en multiline sträng, kommer IEx att ändra prompten för att indikera att den väntar på att du är klar genom att ändra prompten till att ha en ellipsis ( ... ) snarare än iex .

Om du upptäcker att IEx väntar på att du ska avsluta ett uttryck men du inte är säker på vad den behöver för att avsluta uttrycket, eller om du helt enkelt vill avbryta den här raden med inmatning anger du #iex:break som konsolinmatning. Detta kommer att få IEx att kasta en TokenMissingError och avbryta att vänta på någon mer ingång, vilket kommer att återgå till en standardkonsolingång på "toppnivå".

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

Mer information finns i IEx-dokumentationen .

Ladda en modul eller skript i IEx-sessionen

Om du har en elixir-fil; ett skript eller en modul och vill ladda det i den aktuella IEx-sessionen, kan du använda c/1 metoden:

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

Detta kommer att kompilera och ladda modulen i IEx, och du kan ringa alla dess offentliga metoder.

För skript kommer det omedelbart att köra innehållet i skriptet:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow