Tab completion and arrow keys don't work in GHCI in Git Bash

Mark Seemann

When I open ghcii.sh (Glasgow Haskell Compiler Interactive) in Git Bash, normal tab, backspace, and arrow keys don't work as expected.

For example, if I type :lo + Tab, I'd expect it to complete the statement to :load. What instead happens is that the cursor jumps to the right (to the next tab stop, I guess).

Then, if I use Backspace to go back and fill out the command 'manually', this happens:

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'

This is when I'm lucky. Sometimes, I can't even Backspace all the way back, but instead get stuck somewhere to the right of :lo (or whatever other command I'm attempting to issue). I can still hit Enter, though, to try again.

The arrow keys don't invoke command history. If I press , the cursor moves up, but I'd have expected it to cycle through my command history.

This issue seems to be related to Git Bash, because GHCI works correctly in PowerShell on the same machine. On other machines where I'm running an earlier version of Git Bash (git version 1.9.5.msysgit.1), I don't have this problem, so it seems to be related to this particular version (git version 2.5.1.windows.1).

My operating system is Windows 10 64-bit. At first I thought that this issue was related to 64-bit Git Bash, because this is the first time I've seen a 64-bit Git Bash on Windows, but I've also tried installing the 32-bit Git Bash, and it exhibits the exact same behaviour.

Is it possible to make GHCI behave correctly in this environment?

Mark Seemann

Not having received any responses here, I cross-posted the question to the project's GitHub repository.

Apparently, this issue seems to be related to the mintty terminal emulator. If you instead install Git Bash with the ConHost emulator, the problem goes away.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  3. 3

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  4. 4

    pump.io port in URL

  5. 5

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    Do Idle Snowflake Connections Use Cloud Services Credits?

  9. 9

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

  10. 10

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  11. 11

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  12. 12

    Generate random UUIDv4 with Elm

  13. 13

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  14. 14

    Is it possible to Redo commits removed by GitHub Desktop's Undo on a Mac?

  15. 15

    flutter: dropdown item programmatically unselect problem

  16. 16

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  17. 17

    EXCEL: Find sum of values in one column with criteria from other column

  18. 18

    Pandas - check if dataframe has negative value in any column

  19. 19

    How to use merge windows unallocated space into Ubuntu using GParted?

  20. 20

    Make a B+ Tree concurrent thread safe

  21. 21

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

HotTag

Archive