使用颜色设置 ghci 提示符

Setting the ghci prompt with colors

我尝试在我的 ghci 提示中使用终端颜色。

所以当我打开 ghci 并尝试:

Prelude> :set prompt '\[3[1haskell > 3[0m\]'
'\[3[1\]haskell> \[3[0m\] '

我知道这些代码由 bash 使用 echo-e 标志解释。但是我如何在 ghci 中执行此操作?

Haskell 字符转义码为十进制:

Prelude> :set prompt "7[31mhaskell>7[0m "

将相同的指令放入 .ghci 文件中也应该有效。

根据https://wiki.haskell.org/GHCi_in_colour,您可以使用

:set prompt "\ESC[33m\STXhaskell > \ESC[m\STX"

一些注释说明:

  1. 只有双引号字符串被特殊处理;单引号被视为提示的一部分。
  2. 双引号字符串遵循Haskell惯例。
  3. \STX对应于你的bash提示符的\]不清楚为什么 GHCi 不需要 \[ 的等效项。 (也许是这样;我没玩过这么多。)。有关解释,请参阅 http://trac.haskell.org/haskeline/wiki/ControlSequencesInPrompt