如何为Elixir交互式shell(iex)的输入代码自定义着色?
IEx输入关键字自定义着色解决方案
生效前提
- Elixir 版本 ≥ 1.13,该版本起IEx原生支持输入内容语法着色自定义
- 终端已开启ANSI颜色支持,可在IEx中执行
IO.ANSI.enabled?验证,返回true即为正常
配置步骤
编辑用户目录下的~/.iex.exs文件(如果不存在可以直接新建),添加如下配置:
# 强制开启ANSI颜色支持,可选,终端默认关闭时添加 IO.ANSI.enable(true) IEx.configure( colors: [ syntax_colors: [ # quote、do:、def、if等关键字统一使用该配色,可替换为你需要的颜色 keyword: :yellow, # 以下为其他语法元素配色,可按需调整 atom: :cyan, boolean: :magenta, string: :green, number: :light_red, variable: :light_blue, operator: :purple ] ], # 开启输入内容语法着色 syntax_colors_enabled: true )
配置不生效排查
- 检查项目根目录是否存在
.iex.exs文件,项目级配置优先级高于全局配置,会覆盖全局的配色设置 - 确认终端支持256色/真彩色,部分极简终端默认关闭着色功能,可查阅对应终端的配置文档开启
- 验证Elixir版本,低于1.13的版本无原生输入着色功能,可选择升级Elixir版本,或使用
rlwrap配合自定义着色脚本实现类似效果
内容的提问来源于stack exchange,提问作者parzival
相关产品推荐
相关产品推荐

