2017-07-30 19 views
6

Dzięki IEx (REPL) Elixir chciałbym móc zapisać moją historię poleceń.Jak zapisać historię IEx?

Na przykład:

mogę otworzyć nową sesję iex i wykonać polecenie. Po wykonaniu polecenia mogę nacisnąć strzałkę w górę i wstępnie wypełnić moje ostatnie polecenie. Po zamknięciu IEx i ponownym otwarciu chciałbym mieć dostęp do moich ostatnich poleceń.

Czy istnieje sposób, aby to zrobić?

Odpowiedz

16

Dla Erlang/OTP 20

ta jest wbudowana (od https://hexdocs.pm/iex/IEx.html#module-shell-history)

Od Erlang/OTP 20, to jest możliwe, aby uzyskać historię powłoki przekazując kilka flag, które umożliwią to w VM. Można to zrobić na podstawie na potrzeby podczas uruchamiania iex:

iex --erl "-kernel shell_history enabled"

Jeśli wolisz włączyć go w systemie jako całości, można użyć środowiska ERL_AFLAGS zmienna i upewnić się, że jest ustawiony odpowiednio do konfiguracji terminala/powłoki .

W systemie Linux [i MacOS]:

export ERL_AFLAGS="-kernel shell_history enabled"

W systemie Windows:

set ERL_AFLAGS "-kernel shell_history enabled"

Uwaga: @ Andrei-sura wspomniano może trzeba do pierwszego > touch ~/.iex_history na MacOS


Dla Erlang/OTP 19 i poniżej

Spróbuj użyć https://github.com/ferd/erlang-history

> git clone https://github.com/ferd/erlang-history.git 
> cd erlang-history 
> sudo make install # may not need sudo depending on installation 
+8

Właśnie próbowałem się i wydaje się, że historia nie jest poprawnie napisane w niektórych przypadkach podczas zamykania iex trafiając 'Ctrl' + 'C' dwa razy, co robi wielu ludzi. Nie miałem żadnych problemów, zawsze kończąc IEx za pomocą 'Ctrl' +' G' 'Q'' Enter', co jest czystszym sposobem, aby zrezygnować z IEx. –

+0

Zauważyłem, że czasami ma to związek z tym, jak szybko rezygnujesz. Czy może to być warunek wyścigowy do zapisu plików? – loeschg

+0

Haha może po prostu potrwa dłużej, aby uderzyć w to obłąkane połączenie klawiszy, więc jestem mniej prawdopodobny, że wpadnę na ten problem ;-) –

Powiązane problemy