【问题标题】:Setting the ghci prompt with colors使用颜色设置 ghci 提示
【发布时间】:2016-07-08 18:53:03
【问题描述】:

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

所以当我打开ghci 并尝试:

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

我知道这些代码是由带有echo-e 标志的bash 解释的。但是如何在 ghci 中做到这一点?

【问题讨论】:

    标签: haskell prompt ghci


    【解决方案1】:

    根据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

    【讨论】:

    • 哦,所以 GHCi 停止计数 \ESC(可能还有任何不可打印的字符),直到它看到 \STX
    • 没关系,我应该更仔细地阅读我链接到的页面 :)
    【解决方案2】:

    Haskell 字符转义码是十进制的:

    Prelude> :set prompt "\027[31mhaskell>\027[0m "
    

    在您的.ghci 文件中放入相同的指令也应该可以。

    【讨论】:

    • 你也可以使用例如\o33 用于八进制转义码,更接近 Bash。转换 oct->dec 很无聊:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2018-07-31
    • 2017-10-21
    • 2017-11-11
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多