答案 0 :(得分:18)
是的,是的,是的!
要自定义提示,您需要以下几项内容:
.iex.exs
文件。如果该文件不存在,请创建该文件。它将在iex
启动时执行。Application.put_env
启用ANSI。如果您平台上的iex
(例如,Windows 10)未检测到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上更好地工作。]