web-dev-qa-db-fra.com

Comment sauvegarder l'historique IEx?

Avec IEx (REPL d'Elixir), j'aimerais pouvoir sauvegarder l'historique de mes commandes.

Par exemple: 

Je peux ouvrir une nouvelle session IEx et exécuter une commande. Après avoir exécuté la commande, je peux appuyer sur la flèche vers le haut pour que ma dernière commande soit pré-renseignée. Après avoir fermé IEx et ré-ouvert, j'aimerais avoir accès à mes dernières commandes.

Y a-t-il un moyen de faire cela?

18
loeschg

Pour Erlang/OTP 20

Ceci est intégré (à partir de https://hexdocs.pm/iex/IEx.html#module-Shell-history )

Depuis Erlang/OTP 20, il est possible d’obtenir l’historique de Shell en passant certains drapeaux qui l'activent dans la VM. Cela peut être fait à la carte base lors du démarrage d'IEx:

iex --erl "-kernel Shell_history enabled"

Si vous préférez activer sur votre système dans son ensemble, vous pouvez utiliser l’environnement ERL_AFLAGS variable et assurez-vous qu’il est réglé en conséquence sur votre configuration terminal/shell.

Sous Linux [et macOS]:

export ERL_AFLAGS="-kernel Shell_history enabled"

Sous Windows:

set ERL_AFLAGS "-kernel Shell_history enabled"

Remarque: @ andrei-sura a mentionné que vous devrez peut-être d'abord > touch ~/.iex_history sur MacOS.


Pour Erlang/OTP 19 et inférieur

Essayez d’utiliser 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
39
loeschg

J'utilise oh-my-zsh, alors j'ai mis le vim ~/.zshrc:

# Enable history in IEX through Erlang(OTP)
export ERL_AFLAGS="-kernel Shell_history enabled"

alors source ~/.zshrc et maintenant toujours charger. Merci @loeschg.

0
rld