代码之家  ›  专栏  ›  技术社区  ›  bheklilr

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

  •  20
  • bheklilr  · 技术社区  · 10 年前

    我想在Windows7上的GHCi(7.8)中使用lambda()符号作为提示,因此我设置了 .ghci 文件为

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

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

    no lambda!

    如何让Windows正确识别符号?

    3 回复  |  直到 9 年前
        1
  •  35
  •   Ed The ''Pro'' Simon Klee    3 年前

    使用 > chcp.com 65001 使用GHCi,但在设置编码返回乱码文本后,使用Vim打开其他文本文件。

    将以下内容添加到 %USERPROFILE%\.ghci 。您可以使用Unicode转义lambda,而不是更改编码 \x03BB :

    :set prompt  "\x03BB: "
    

    如果 %用户档案%\.ghci 不存在,请在进行更改之前先创建它。

        2
  •  17
  •   bheklilr    10 年前

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

    > chcp.com 65001
    

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

    enter image description here

    这也会让许多其他Unicode字符在 cmd.exe 和其他Windows shell(如Cygwin bash),但Windows的Unicode支持仍然不够完善,有些字体不支持许多字符。幸运的是,恰好是一个受支持的角色,所以我们都可以使用经典的GHCi提示。

        3
  •  3
  •   Ed The ''Pro'' Simon Klee    3 年前

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

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

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

    2. 根据您的操作系统:

      • *数码: $HOME/.ghc/ghci.conf
      • 窗户: 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 是主提示。所以它将是“>”。
    • 提示2 是次要提示(我还没看到)。所以它将是“|”。
    • 提示(续) 提示2 ,是 提示2 在GHCi 8.2.0中。