Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何给Elixir iex提示符上色?_Elixir_Elixir Iex - Fatal编程技术网

如何给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转换为字符串
以下是适用于我在终端、OS X 10.11.5、控制台和Windows 10上使用
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。。。结束