如何在Windows上将GHCi提示符设置为lambda字符?

时间:2014-08-18 22:37:05

标签: windows haskell unicode ghc ghci

我希望在Windows 7上的GHCi(7.8)中有一个lambda(λ)符号作为我的提示,因此我将.ghci文件设置为

:set +m
:set prompt  "λ: "
:set prompt2 " | "

我将我的控制台字体设置为Lucida控制台,因为它应该支持Unicode,但是当我加载GHCi时,它看起来像这样

no lambda!

如何让Windows正确识别λ符号?

3 个答案:

答案 0 :(得分:29)

使用> chcp.com 65001使用ghci但在设置该代码页后使用vim打开其他文本文件时返回乱码文本。

您可以使用unicode转义lambda \x03BB

,而不是更改代码页
:set prompt  "\x03BB: "

而不是:

:set prompt  "λ: "

答案 1 :(得分:13)

这实际上是一个非常简单的修复,只需在启动GHCi之前运行以下命令:

> chcp.com 65001

这将Window的编码设置为65001代码页,这样可以正确显示λ:

enter image description here

这也会让许多其他Unicode字符在cmd.exe和其他Windows shell(例如Cygwin bash)中正确显示,但Windows的Unicode支持仍然不完美,有些字体不支持很多人物。幸运的是,λ恰好是一个支持的角色,所以我们都可以拥有经典的GHCi提示符。

答案 2 :(得分:1)

使用 Răzvan Flavius Panda 的回答,我决定制作一个配置文件,其中包含三个用于设置提示的标志。原因是 prompt-cont 适用于 GHCi 版本 >= 8.2.0,而 prompt2 适用于较旧的 GHCi 版本。

我查看了 a short tutorial about configuring GHCi 以尝试找出放置配置文件的位置。该站点称 GHCi 按以下顺序读取配置文件:

  1. ./.ghci(本地配置文件。)

  2. 取决于您的操作系统:

    • *nix:$HOME/.ghc/ghci.conf
    • Windows:C:\Users\<name>\AppData\Roaming\ghc\ghci.conf
  3. $HOME/.ghci(可能仅限 *nix;对我不起作用。)

我选择了第二个选项。

C:\Users\Edwin\AppData\Roaming\ghc\ghci.conf

:set prompt "\x03BB> "
:set prompt2 "\x03BB| "
:set prompt-cont "\x03BB| "

说明:

  • \x03BB 代表λ。
  • prompt 是主要提示。所以它将是“λ>”。
  • prompt2 用于辅助提示(我还没有看到)。所以它会是“λ|”。
  • prompt-contprompt2 相同,是 GHCi 8.2.0 中 prompt2 的替代品。