2017-07-30 19 views
6

Với IEx (REPL của Elixir), tôi muốn có thể lưu lịch sử lệnh của mình.Tôi làm cách nào để lưu lịch sử IEx?

Ví dụ:

Tôi có thể mở phiên IEx mới và thực thi lệnh. Sau khi thực hiện lệnh, tôi có thể nhấn mũi tên lên và có lệnh cuối cùng của tôi được điền trước. Sau khi đóng IEx và mở lại, tôi muốn có quyền truy cập vào các lệnh cuối cùng của mình.

Có cách nào để thực hiện việc này không?

Trả lời

16

Đối với Erlang/OTP 20

này được xây dựng-in (từ https://hexdocs.pm/iex/IEx.html#module-shell-history)

Từ Erlang/OTP 20, nó có thể để có được lịch sử vỏ bằng cách thông qua một số cờ cho phép nó trong VM. Điều này có thể được thực hiện trên một per-nhu cơ sở khi bắt đầu IEX:

iex --erl "-kernel shell_history enabled"

Nếu bạn muốn cho phép nó trên hệ thống của bạn như một toàn thể, bạn có thể sử dụng môi trường ERL_AFLAGS biến và chắc chắn rằng nó được đặt tương ứng trên cấu hình thiết bị đầu cuối/vỏ của bạn.

Trên Linux [và MacOS]:

export ERL_AFLAGS="-kernel shell_history enabled"

Trên Windows:

set ERL_AFLAGS "-kernel shell_history enabled"

Lưu ý: @ andrei-sura nêu bạn có thể cần phải > touch ~/.iex_history đầu tiên trên hệ điều hành MacOS


Đối với Erlang/OTP 19 và dưới

Hãy thử sử dụng 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

Chỉ cần cố gắng này ra và có vẻ như rằng lịch sử không được viết một cách chính xác trong một số trường hợp khi thoát IEX bằng cách nhấn 'Ctrl' + 'C' hai lần, mà nhiều người làm. Tôi đã không có vấn đề khi luôn luôn chấm dứt IEx với 'Ctrl' +' G' 'Q'' Enter' mặc dù, đó là một cách sạch hơn để thoát khỏi IEx anyway. –

+0

Tôi đã nhận thấy rằng đôi khi nó phải làm với tốc độ bạn bỏ thuốc lá. Có thể là một tình trạng cuộc đua ghi tập tin của các loại? – loeschg

+0

Haha có thể nó chỉ mất nhiều thời gian để nhấn tổ hợp phím điên này vì vậy tôi ít có khả năng chạy vào vấn đề ;-) –

Các vấn đề liên quan