如何修改Elixir命令提示符颜色?含IO.inspect样式设置示例
如何修改Elixir命令提示符及指定输出的颜色
嘿,这个问题我刚好折腾过!要实现你说的「指定代码输出黑字黄背景」,或者修改iex命令提示符的颜色,核心都是用ANSI终端颜色转义码,下面分两种场景给你详细讲:
一、给IO.inspect的输出设置黑字黄背景
你举的例子var1 = %{someprop: 123}; IO.inspect var1,要让这段输出变成黑字黄背景,最简单的方式是直接用ANSI转义码包裹输出内容:
方法1:直接拼接颜色代码
var1 = %{someprop: 123} # 黑字(\e[30m) + 黄背景(\e[43m),最后用\e[0m重置颜色 IO.puts("\e[30m\e[43m#{inspect(var1)}\e[0m")
方法2:封装成复用函数
如果需要多次使用这种样式,可以封装一个自定义函数,避免重复写转义码:
defmodule ColoredInspect do @black_text "\e[30m" @yellow_bg "\e[43m" @reset "\e[0m" def yellow_bg_black(term) do formatted = inspect(term) IO.puts("#{@black_text}#{@yellow_bg}#{formatted}#{@reset}") end end # 使用示例: var1 = %{someprop: 123} ColoredInspect.yellow_bg_black(var1)
二、修改iex命令提示符的颜色
如果要修改iex默认的iex(1)>提示符颜色,需要配置~/.iex.exs文件(没有的话就新建一个),添加以下内容:
IEx.configure( # 同样用ANSI码设置黑字黄背景,%counter是iex内置的提示符计数器 prompt: "\e[30m\e[43miex(%counter)> \e[0m" )
保存后重启iex,你就能看到带黄背景黑字的提示符啦!
小补充:ANSI转义码说明
这里用到的几个关键转义码:
\e[30m:设置文本颜色为黑色\e[43m:设置背景颜色为黄色\e[0m:必须加上,用来重置所有颜色属性,不然后续的终端输出都会继承这个颜色样式
注意:大部分现代终端(Linux/macOS终端、Windows Terminal、PowerShell)都支持ANSI转义码,旧版Windows命令提示符可能需要额外配置才能支持。
内容的提问来源于stack exchange,提问作者Dmitriy Makarenko
相关产品推荐
相关产品推荐

