【问题标题】:Tab completion and arrow keys don't work in GHCI in Git BashTab 补全和箭头键在 Git Bash 的 GHCI 中不起作用
【发布时间】:2015-11-28 22:40:13
【问题描述】:

当我在 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 在这种环境下正常运行?

【问题讨论】:

    标签: windows haskell ghci git-bash


    【解决方案1】:

    这可能是由于最近几年添加了新功能,但 Git Bash 带有 winpty,而且它似乎与 GHCi for Windows 配合得很好:

    $ winpty stack ghci
    

    【讨论】:

      【解决方案2】:

      对于在 Google 搜索后仍然来到这里的任何人...

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

      你也可以试试WinGHCi,应该已经安装好了。

      【讨论】:

        【解决方案3】:

        这里没有收到任何回复,我cross-posted the question to the project's GitHub repository

        显然,这个问题似乎与 mintty 终端模拟器有关。如果您改为使用 ConHost 模拟器安装 Git Bash,问题就会消失。

        【讨论】:

          猜你喜欢
          • 2012-01-28
          • 1970-01-01
          • 1970-01-01
          • 2011-09-22
          • 2019-09-09
          • 2018-12-20
          • 1970-01-01
          • 2012-04-11
          • 2015-04-28
          相关资源
          最近更新 更多