Problems with mix when using latest elixir + erlang on Windows cmd

Hello friends, I have a problem when using mix with windows cmd (latest erl+elixir).

I open a command line and run mix. After that, whenever I press up arrow (to get the prev cmd) I see ^[[A instead (notice that I get similar behavior with all arrow keys i.e I get ^[[A^[[B^[[D^[[C for up down left right).

If I run chcp on the same cmd it fixes the behavior and the arrows work again. But when I run mix again, it breaks again! Notice that I get the same behavior elixir x. Running iex works fine. Also please notice that if I run elixir (without parameters) the up arrow works. It only breaks If I pass a parameter to it (that’s what mix.bat also does).

This may be related with this Elixir + Erlang on Windows 11 terminal error - #2 by BradS2S ?

Please please please don’t answer me about powershell or wsl. I know these solutions exist but my workflow uses cmd and I want to keep using that.

Thank you.

In case other friends have the same problem, and until this is fixed:

You can create a file named mix.bat on the root folder of your elixir project with the following contents:

@echo off
set "NoDefaultCurrentDirectoryInExePath=0"
call mix.bat %*
chcp > NUL
set "NoDefaultCurrentDirectoryInExePath="

after that you should be able to run mix and the up arrow won’t break :slight_smile:

Looks like an OTP bug. If you run erl and then quit the same thing happens.

If I run erl (using Erlang/OTP 26 [erts-14.1.1]) the up arrow works both on the erlang interpreter and If i quit (using double ctrl+c). However if I quit using ctrl+c and then a (abort) the up arrow breaks (!)

quitting by quit() also does it

I think this is the same issue as reported here: Erlang 26 breaks command line on Windows · Issue #7621 · erlang/otp · GitHub

If so, it will be fixed in 26.2.

If you want to try it out before it is released you can download an windows installer from the maint githubactions artifacts. For example here: Merge pull request #7805 from ansd/patch-1 · erlang/otp@59620cb · GitHub

2 Likes

Hey @garazdawi that seems to be the one, thank you!