2017-07-30 20 views
6

IEx (Elixir'in REPL'si) ile komut geçmişimi kaydedebilmek istiyorum. ÖrneğinIEx geçmişini nasıl kaydederim?

:

Ben yeni IEX oturumu açmak ve bir komut çalıştırabilirsiniz. Komutu çalıştırdıktan sonra yukarı oka basabilirim ve son komutum önceden doldurulmuş olabilir. IEx'i kapattıktan ve yeniden açtıktan sonra son komutlarıma erişmek istiyorum.

Bunu yapmanın bir yolu var mı? İçin

cevap

16

Erlang/OTP 20

Bu yerleşik (https://hexdocs.pm/iex/IEx.html#module-shell-history itibaren)/OTP 20 Erlang itibaren

, etkinleştirmek bazı bayrakları ileterek kabuk geçmişini almak mümkündür edilir VM'de. IEX başlatırken bu başına ihtiyacı temelinde yapılabilir:

iex --erl "-kernel shell_history enabled"

Bunun yerine bir bütün olarak sisteminizde o sağlayacak ise, değişken ERL_AFLAGS ortamını kullanmak ve emin olabilirsiniz terminal/kabuk yapılandırmanıza göre ayarlanır.

Linux [ve MacOS] On

: Windows'ta

export ERL_AFLAGS="-kernel shell_history enabled"

:

set ERL_AFLAGS "-kernel shell_history enabled"

Not: andrei-sura Eğer MacOS

ilk > touch ~/.iex_history gerekebilir sözü @

Erlang/OTP 19 için ve

altında +

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

https://github.com/ferd/erlang-history Sadece bu denedik kullanmayı deneyin ve onu 'Ctrl' vurarak geçmişi IEX çıkarken bazı durumlarda doğru şekilde yazılmamıştır gibi görünüyor 'C', birçok insanın yaptığı iki kere. IEx'i her zaman sonlandırmak için daha temiz bir yol olan 'Ctrl' + 'G'' Q'' Enter' ile IEx’i her zaman sonlandırırken sorun yaşamadım. –

+0

Bazen ne kadar hızlı çıktığınız ile ilgili olduğunu fark ettim. Bir çeşit dosya yazma yarış durumu olabilir mi? – loeschg

+0

Haha belki sadece aksi takdirde çalışmaz, bu yüzden sorun ;-) boş bir tarih dosyası oluşturmak zorunda MacOS üzerinde –

İlgili konular