请问我们如何Iex在Windows上清除屏幕
Iex帮助中的记录方法不起作用:
clear/0 - 清除屏幕此StackOverflow应答在Windows中也不起作用.
我发现它是可能的,因为Windows 10中的本机终端支持ANSI颜色和转义序列.唯一的事情是在iexshell中启用它.
根据https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/io/ansi.ex#L41,此选项是可配置的.作为快速解决方案,只需在iex代码后输入您的会话:
Application.put_env(:elixir, :ansi_enabled, true)
为了使其永久化,您可以iex在~/.iex.exs文件中配置shell (https://hexdocs.pm/iex/IEx.html#module-configuring-the-shell).只需将以下内容粘贴到文件中:
IEx.configure [colors: [enabled: true]]
您可以通过iex支持它们的控制台(如 ConEmu 或 Windows 10 控制台)直接在Windows 上使用 ANSI 代码。
这将清除屏幕iex:
iex> IO.write "\e[H\e[J"; IEx.dont_display_result
Run Code Online (Sandbox Code Playgroud)
解释:
IO.write 输出到没有换行符的控制台\e[是 ANSI CSI 代码的前缀H是 CSI CUP –没有参数的光标位置代码,默认情况下将光标移动到第 1 行第 1 列J是 CSI ED –不带参数的擦除显示代码,默认情况下从当前光标位置清除屏幕IEx.dont_display_result防止清屏后显示:ok结果IO.write您还可以使用IO.ANSI而不是原始转义码清除屏幕:
iex> IO.write [IO.ANSI.home, IO.ANSI.clear]; IEx.dont_display_result
这基本上clear/1是如何实现的。
| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |