选项卡完成和箭头键在Git Bash中的GHCI中不起作用

时间:2015-09-03 07:46:01

标签: windows haskell ghci git-bash

当我在Git Bash中打开ghcii.sh(Glasgow Haskell Compiler Interactive)时,普通标签,退格键和箭头键无法按预期工作。

例如,如果我输入:lo + Tab ,我希望它能完成:load的语句。反而发生的是光标向右跳(到下一个制表位,我猜)。

然后,如果我使用 Backspace 返回并填写“手动”命令,则会发生这种情况:

Prelude> :load PrettyJSON.hs

<interactive>:2:1:
    Not in scope: `ad'
    Perhaps you meant one of these:
      `and' (imported from Prelude), `id' (imported from Prelude)

<interactive>:2:4: Not in scope: `PrettyJSON.hs'

这是我幸运的时候。有时候,我甚至不能 Backspace ,而是卡在:lo右边的某个地方(或者我试图发出的任何其他命令)。不过,我仍然可以点击 Enter 再试一次。

箭头键不会调用命令历史记录。如果按,光标会向上移动,但我希望它可以循环显示我的命令历史记录。

这个问题似乎与Git Bash有关,因为GHCI在同一台机器上的PowerShell中正常工作。在我运行早期版本的Git Bash(git版本1.9.5.msysgit.1)的其他机器上,我没有这个问题,所以它似乎与这个特定版本有关(git版本2.5.1) .windows.1)。

我的操作系统是Windows 10 64位。起初我认为这个问题与64位Git Bash有关,因为这是我第一次在Windows上看到64位Git Bash,但我也尝试过安装32位Git Bash,它表现出完全相同的行为。

是否有可能在这种环境下使GHCI正常运行?

2 个答案:

答案 0 :(得分:4)

对于那些在谷歌搜索后仍然来到这里的人......

您可以直接从开始菜单启动 GHCi ,而不是改变 Git Bash 的启动方式(这已经使用 Windows控制台)。只需在开始菜单/屏幕中键入 GHCi ,然后等待结果。奖金是控制台标题栏中的一个很好的 Haskell图标:P

您也可以尝试 WinGHCi ,它应该已经安装。

答案 1 :(得分:1)

这可能是由于在随后的几年中增加了新功能,但是Git Bash附带了winpty,并且似乎可以与Windows的GHCi一起很好地工作:

$ winpty stack ghci