如何给Elixir iex提示符上色?
是否可以在提示中添加颜色和其他效果?如何给Elixir iex提示符上色?,elixir,elixir-iex,Elixir,Elixir Iex,是否可以在提示中添加颜色和其他效果?iex是否有资源文件(如Ruby的)?是否有一个定制API允许即时定制(比如Ruby)?是的,是的,是的 要自定义提示,您需要做以下几件事: 主目录中的.iex.exs文件。如果此文件不存在,请创建它。它将在启动时执行 [可选]调用以启用ANSI。如果您的平台(如Windows 10)上的iex未检测到ANSI支持,则可能需要此选项 调用以启用颜色并设置提示 以更正光标位置。否则,使用上/下箭头循环浏览命令历史记录会将光标向右移动更远。当前未公开所有光标移动
iex
是否有资源文件(如Ruby的)?是否有一个定制API允许即时定制(比如Ruby)?是的,是的,是的
要自定义提示,您需要做以下几件事:
- 主目录中的
文件。如果此文件不存在,请创建它。它将在启动时执行.iex.exs
- [可选]调用以启用ANSI。如果您的平台(如Windows 10)上的iex未检测到ANSI支持,则可能需要此选项
- 调用以启用颜色并设置提示
- 以更正光标位置。否则,使用上/下箭头循环浏览命令历史记录会将光标向右移动更远。当前未公开所有光标移动代码,但原始代码适用于支持这些代码的终端
格式化函数IO.ANSI
- 提示文本
关闭任何剩余格式IO.ANSI.reset
- 使用
IO.chardata\u转换为字符串
iex
1.3.0的方法:
# ~/.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
首次启动时,它会显示其内置提示。如果我点击return,那么我的提示就会生效。如果有人知道如何解决这个问题,请分享
[更新:修改以更好地在Windows上工作。]IEx.configure colors:[评估结果:[:绿色,:明亮]]#我想知道为什么绿色显示为黄色?@sheriffderek ANSI颜色名称映射到其他地方定义的颜色表中的索引(例如,在终端程序中)。许多终端程序支持颜色方案(例如,)在Windows 10上,配置文件的位置是
%USERPROFILE%\.iex.exs
什么代替了%USERPROFILE%?以防万一,一个使用多个Windows终端,例如ConEmu/Cmder和plain cmd/VSCode,它们不能执行ANSI,配置可以设置为有条件的,例如if System.get_env(“ConEmuANSI”)=“on”do。。。结束