【发布时间】:2016-10-21 02:05:26
【问题描述】:
【问题讨论】:
标签: elixir elixir-iex
【问题讨论】:
标签: elixir elixir-iex
是的,是的,是的!
要自定义提示,您需要做几件事:
.iex.exs 文件。如果此文件不存在,请创建此文件。它将在iex 启动时执行。Application.put_env 以启用 ANSI。如果您的平台(例如 Windows 10)上的 iex 未检测到 ANSI 支持,您可能需要此功能。IEx.configure 以启用颜色并设置提示。IO.ANSI 目前并未公开所有光标移动代码,但原始代码将适用于支持它们的终端。IO.ANSI 格式化函数。IO.ANSI.reset 关闭所有剩余的格式。IO.chardata_to_string 转换为字符串。以下是我在终端中使用 iex 1.3.0 和在 OS X 10.11.5 和控制台中使用 iTerm2 3.0.3,在 Windows 10 上使用 GitBash 和 ConEmu 时的效果:
# ~/.iex.exs
Application.put_env(:elixir, :ansi_enabled, true)
IEx.configure(
colors: [enabled: true],
default_prompt: [
"\e[G", # ANSI CHA, move cursor to column 1
:magenta,
"%prefix", # IEx prompt variable
">", # plain string
:reset
] |> IO.ANSI.format |> IO.chardata_to_string
)
此代码运行良好,但我的提示仅在第一次交互后生效:当iex 第一次启动时,它会显示其内置提示。如果我点击返回,那么我的提示就会生效。如果有人知道如何解决这个问题,请分享。
[更新:修改为在 Windows 上更好地工作。]
【讨论】:
%USERPROFILE%\.iex.exs
if System.get_env("ConEmuANSI") == "ON" do ... end