我刚开始使用Elixir,并且已经使用了iex
shell很多了。我可以将“ session ”保存/记录到文件吗?
谢谢。
最佳答案
在Erlang / OTP-20及更高版本中
-https://github.com/ferd/erlang-history
故障排除
历史记录似乎未更新(未写入文件)?
似乎将历史记录写入文件的过程是异步执行的,并且在关闭IEx Shell之前需要一些时间。您需要稍等片刻才能退出 shell 程序(例如,按<ctrl+\>
)。
Erlang / OTP-20之前版本:
我发现有两种方法可以做到这一点。
1. Erlang History
在Ubuntu Linux中安装:
sudo su
cd /usr/local/src
git clone https://github.com/ferd/erlang-history.git
cd erlang-history
make install
现在,每个现在开始使用的基于Erlang的REPL(即IEx)都应该使用
erlang-history
。2. rlwrap
另外,您可以尝试使用更通用的REPL增强程序/修复程序rlwrap,它是“readline包装器”:
rlwrap -a -A iex -S mix
(如果您在Ubuntu Linux上使用,请使用:
sudo apt-get install rlwrap
)它使您可以向REPL添加更多功能,例如pipeto过滤器
rlwrap -a -z pipeto iex
,可让您将内容通过管道传递给Shell命令-对阅读文档非常有用,例如:iex> h Stream | less
(more)知道缺点:
为什么此非常有用的功能-命令历史-Elixir / Erlang中尚未包含?
使用
asdf
时,请参见this。关于shell - 如何保存/记录iex shell的输出以获得持久的命令历史记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22426716/