Поиск…


Перекомпилировать проект с `перекомпилировать`

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+ \ для немедленного выхода

См. Информацию с `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 в корне вашего приложения, IEx загрузит их для вас при запуске.

alias App.{User, Repo}

Постоянная история

По умолчанию история ввода пользователя в IEx не сохраняется в разных сеансах.

erlang-history добавляет поддержку истории как для оболочки Erlang, так и для IEx :

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

Теперь вы можете получить доступ к своим предыдущим входам, используя клавиши со стрелками вверх и вниз, даже в разных сеансах IEx .

Когда консоль Elixir застряла ...

Иногда вы можете случайно запустить что-то в оболочке, которая заканчивается навсегда, и, таким образом, блокирует оболочку:

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 ждет вас, чтобы завершить выражение, но вы не знаете, что ему нужно для завершения выражения, или вы просто хотите прервать эту строку ввода, введите #iex:break в качестве входа в консоль. Это заставит IEx выкинуть TokenMissingError и отменить ожидание ввода большего количества, возвращая вас к стандартным TokenMissingError консоли верхнего уровня.

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