当我在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正常运行?
答案 0 :(得分:4)
对于那些在谷歌搜索后仍然来到这里的人......
您可以直接从开始菜单启动 GHCi ,而不是改变 Git Bash 的启动方式(这已经使用 Windows控制台)。只需在开始菜单/屏幕中键入 GHCi ,然后等待结果。奖金是控制台标题栏中的一个很好的 Haskell图标:P
您也可以尝试 WinGHCi ,它应该已经安装。
答案 1 :(得分:1)
这可能是由于在随后的几年中增加了新功能,但是Git Bash附带了winpty
,并且似乎可以与Windows的GHCi一起很好地工作:
$ winpty stack ghci