Buscar..


Recompila proyecto con `recompile`

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

Ver documentación con `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

Obtener valor del último comando con `v`

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

Vea también: Obtenga el valor de una fila con `v`

Obtenga el valor de un comando anterior con `v`

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

Puede obtener una fila específica pasando el índice de la fila:

iex(4)> v(3)
30

También puede especificar un índice relativo a la fila actual:

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

El valor puede ser reutilizado en otros cálculos:

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

Si especifica una fila no existente, IEx generará un error:

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

Salir de la consola IEx

  1. Use Ctrl + C, Ctrl + C para salir
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Use Ctrl+ \ para salir inmediatamente

Ver información con `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

Creación de PID

Esto es útil cuando no guardó el PID de un comando anterior

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>

Tenga sus alias listos cuando inicie IEx

Si coloca sus alias de uso común en un archivo .iex.exs en la raíz de su aplicación, IEx los cargará por usted al inicio.

alias App.{User, Repo}

Historia persistente

De forma predeterminada, el historial de entrada del usuario en IEx no se mantiene en las diferentes sesiones.

erlang-history agrega soporte de historial tanto para el shell Erlang como para IEx :

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

Ahora puede acceder a sus entradas anteriores con las teclas de flecha hacia arriba y hacia abajo, incluso a través de diferentes sesiones IEx .

Cuando la consola de Elixir está atascada ...

A veces, es posible que ejecutes accidentalmente algo en el shell que termina esperando para siempre y, por lo tanto, bloquea el shell:

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

En ese caso, presione Ctrl-g. Verás:

User switch command

Ingrese estos comandos en orden:

  • k (para matar el proceso de shell)
  • s (para iniciar un nuevo proceso de shell)
  • c (para conectarse al nuevo proceso de shell)

Terminarás en una nueva concha de Erlang:

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

Para iniciar un shell Elixir, escriba:

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

(No olvides el punto final!)

Luego verás un nuevo proceso de shell 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)>

Para escapar del modo "en espera de más entrada" (debido a las comillas no cerradas, corchetes, etc.) escriba #iex:break , seguido de un retorno de carro ( ):

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

lo anterior es especialmente útil cuando copiar y pegar un fragmento relativamente grande convierte la consola en el modo de "espera de más entrada".

salir de la expresión incompleta

Cuando haya ingresado algo en IEx que espera una finalización, como una cadena multilínea, IEx cambiará la solicitud para indicar que está esperando a que termine cambiando la solicitud para que tenga puntos suspensivos ( ... ) en lugar de iex .

Si encuentra que IEx está esperando que termine una expresión pero no está seguro de lo que necesita para terminar la expresión, o simplemente desea cancelar esta línea de entrada, ingrese #iex:break como entrada de la consola. Esto hará que IEx lance un TokenMissingError y cancele la espera de más entrada, devolviéndole a una entrada de consola estándar de "nivel superior".

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

Más información está disponible en la documentación de IEx .

Cargue un módulo o script en la sesión IEx

Si tienes un archivo de elixir; un script o un módulo y desea cargarlo en la sesión IEx actual, puede usar el método c/1 :

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

Esto compilará y cargará el módulo en IEx, y podrás llamar a todos sus métodos públicos.

Para los scripts, ejecutará inmediatamente el contenido del script:

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow