2017-07-30 25 views
6

IEx(ElixirのREPL)では、コマンド履歴を保存できるようにしたいと考えています。例えばIEx履歴を保存するにはどうすればよいですか?

私は新しいIEXセッションを開き、コマンドを実行することができます。コマンドを実行した後、私は上矢印を押して、私の最後のコマンドをあらかじめ入力しておくことができます。 IExを閉じてもう一度開くと、私は最後のコマンドにアクセスしたいと思います。

これを行う方法はありますか?

答えて

16

のErlang/OTP 20については

これは、ビルトインされた(https://hexdocs.pm/iex/IEx.html#module-shell-historyから)

をアーラン/ OTP 20から、有効 いくつかのフラグを渡すことで、シェルの履歴を取得することが可能ですそれはVM内にあります。 IEXを開始するときにこれは当たりの必要性 基づいて行うことができます。

iex --erl "-kernel shell_history enabled"

はあなたではなく、全体としてシステム上 それを可能にする場合は、 変数ERL_AFLAGS環境を使用していることを確認することができますそれはあなたの 端末/シェル設定に応じて設定されます。 Linuxの[およびMacOSの]で

:Windowsでは

export ERL_AFLAGS="-kernel shell_history enabled"

set ERL_AFLAGS "-kernel shell_history enabled"

注:@のアンドレイ・ふくらはぎあなたはMacOSの

上の最初の > touch ~/.iex_historyする必要があるかもしれません言及

のErlang/OTP 19と

の下にはこれを試してみたし、 `Ctrl` +を押すことでIEXの終了時に履歴をいくつかのケースでは正しく書き込まれていないようだ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

を使用してみてくださいについて'C'を2回、多くの人がやっています。とにかくIExを終了するには、よりクリーンな方法ですが、いつも 'Ctrl' +' G''Q'' Enter'でIExを終了すると問題はありませんでした。 –

+0

私は、時にはそれがあなたがいかに速く止めるかと関係していることに気づきました。ファイル書き込み競合状態になることはありますか? – loeschg

+0

あの狂気のようなキーコンボを打つのに時間がかかるかもしれません;-) –

関連する問題