IEx.Helper.h 的终端友好输出,同时输出到非 TTY 的内容
Terminal friendly output for IEx.Helper.h while outputting to something not TTY
在这个 Elixir Forum post 之后,我创建了一个 shell 脚本来查看 运行ning IEx.Helpers.h
:
的 Elixir 文档
elixir -e "require IEx.Helpers; IEx.Helpers.h()"
(其中 </code> 是脚本的命令行参数)。 (例如,命令</p>
<pre><code>elixir -e "require IEx.Helpers; IEx.Helpers.h(List)"
提供模块 List
的文档。)
这太棒了。不再需要 运行 iex
查看文档。终端的默认格式非常漂亮。但是如果我将输出通过管道传输到寻呼机(或者更一般地说,如果输出不是 TTY 设备),格式会发生变化 - 没有 ANSI 颜色的纯 ASCII 输出。
问题:如何配置或指示 IEx.Helper.h
在非 TTY 情况下提供相同的输出?
(看起来有函数 IEx.configure
可用于更改格式,但我看不到任何关于非 TTY 输出的信息。另一种方法是使用一些合适的小型外部程序来创建一个伪 TTY,将 stdout
重定向到 运行 之前 elixir
命令...但我更愿意从 Elixir 端解决输出问题。)
通过欺骗 IEx.Config.colors_enabled?/1
不使用复杂的检查 IO.ANSI.enabled?/0
:
,无论使用何种输出设备,都可能会强制使用颜色
elixir -e "
Application.put_env(:iex, :colors, [enabled: true]);
require IEx.Helpers;
IEx.Helpers.h(List)"
在这个 Elixir Forum post 之后,我创建了一个 shell 脚本来查看 运行ning IEx.Helpers.h
:
elixir -e "require IEx.Helpers; IEx.Helpers.h()"
(其中 </code> 是脚本的命令行参数)。 (例如,命令</p>
<pre><code>elixir -e "require IEx.Helpers; IEx.Helpers.h(List)"
提供模块 List
的文档。)
这太棒了。不再需要 运行 iex
查看文档。终端的默认格式非常漂亮。但是如果我将输出通过管道传输到寻呼机(或者更一般地说,如果输出不是 TTY 设备),格式会发生变化 - 没有 ANSI 颜色的纯 ASCII 输出。
问题:如何配置或指示 IEx.Helper.h
在非 TTY 情况下提供相同的输出?
(看起来有函数 IEx.configure
可用于更改格式,但我看不到任何关于非 TTY 输出的信息。另一种方法是使用一些合适的小型外部程序来创建一个伪 TTY,将 stdout
重定向到 运行 之前 elixir
命令...但我更愿意从 Elixir 端解决输出问题。)
通过欺骗 IEx.Config.colors_enabled?/1
不使用复杂的检查 IO.ANSI.enabled?/0
:
elixir -e "
Application.put_env(:iex, :colors, [enabled: true]);
require IEx.Helpers;
IEx.Helpers.h(List)"