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

bhe*_*ilr 18 windows unicode haskell ghc ghci

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

:set +m
:set prompt  "?: "
:set prompt2 " | "
Run Code Online (Sandbox Code Playgroud)

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

没有lambda!

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

Răz*_*nda 30

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

您可以使用unicode转义lambda而不是更改代码页%USERPROFILE%\.ghci:

:set prompt  "\x03BB: "
Run Code Online (Sandbox Code Playgroud)

代替:

:set prompt  "\x03BB: "
Run Code Online (Sandbox Code Playgroud)

  • @vikingsteve:当你使用`:set prompt"\ x03BB:"`时,ghci提示符是什么样的?它可能是控制台使用的字体,如果它不是真的类型,它会显示问号.使用Lucida Console或Consolas,它可以正确显示. (2认同)

bhe*_*ilr 13

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

> chcp.com 65001
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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