8

我正在 Windows 上的 GHCi 中试用 Haskell。在我正在学习的教程中,函数名称包含在反引号中:x `mod` 7. 但是,我无法在 GHCi 中输入字符。

反引号字符的 ASCII 值为 096,但 GHCI 不允许Alt+插入任何字符。复制/粘贴也不起作用。我该怎么办?

4

2 回答 2

10

如果您的键盘没有,我不知道如何向 ghci 发送反引号。但是这个小技术问题不应该阻止你尝试 Haskell!

  • 你可以用 Haskell 编程而不用反引号来f a b代替a `f` b. 在您的示例中,mod x 7.

  • 您可以将键盘布局设置为 us-american 以进行编程。虽然在物理键盘上找到带有错误标签的键需要一些练习,但使用 、 和更易于访问可能会很方便[,而且]在您的情况下,完全可以使用反引号。{}

  • 您可以从剪贴板粘贴反引号。(从命令窗口的设置中激活“快速编辑模式”和“粘贴模式”,然后使用鼠标右键粘贴)。

  • 也许在命令窗口周围使用包装器会有所帮助?我有时使用 Console2,有时M-x shell在 Emacs 中使用。

  • 也许 WinGHCi 有帮助?它至少支持复制和粘贴。

  • 有关如何向 ghci 添加自定义键绑定的信息,请参阅 Ørjan Johansen 的回答。

祝 Haskell 好运!

于 2015-09-26T19:25:07.320 回答
6

@Toxaris 在他的回答中给出了一些建议,但在评论中他还提到了配置 GHCi 的 readline 版本(称为haskeline)的可能性。并且 indead 它允许自定义键绑定。所以我决定测试一下。

文档说将自定义放在 中~/.haskeline,这不是 Windows 路径,但它可能会转换为返回.haskeline的任何目录System.Directory.getHomeDirectory。(vim也可以直接在 Windows 上编辑该路径,但后来我才意识到。)所以我将以下内容放入C:\Users\Ørjan\.haskeline

bind: meta-' `

现在我可以`alt-'!

于 2015-09-27T00:40:36.490 回答