【发布时间】:2016-07-08 18:53:03
【问题描述】:
我尝试在我的 ghci 提示符中使用终端颜色。
所以当我打开ghci 并尝试:
Prelude> :set prompt '\[\033[1haskell > \033[0m\]'
'\[\033[1\]haskell> \[\033[0m\] '
我知道这些代码是由带有echo 和-e 标志的bash 解释的。但是如何在 ghci 中做到这一点?
【问题讨论】:
我尝试在我的 ghci 提示符中使用终端颜色。
所以当我打开ghci 并尝试:
Prelude> :set prompt '\[\033[1haskell > \033[0m\]'
'\[\033[1\]haskell> \[\033[0m\] '
我知道这些代码是由带有echo 和-e 标志的bash 解释的。但是如何在 ghci 中做到这一点?
【问题讨论】:
根据https://wiki.haskell.org/GHCi_in_colour,可以使用
:set prompt "\ESC[33m\STXhaskell > \ESC[m\STX"
几点说明:
\STX 对应你的bash 提示的\]; \[ 的等效项。 (也许确实如此;我没玩过这么多。)【讨论】:
\ESC(可能还有任何不可打印的字符),直到它看到 \STX?
Haskell 字符转义码是十进制的:
Prelude> :set prompt "\027[31mhaskell>\027[0m "
在您的.ghci 文件中放入相同的指令也应该可以。
【讨论】:
\o33 用于八进制转义码,更接近 Bash。转换 oct->dec 很无聊:P