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.
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:
call mix.bat %*
chcp > NUL
after that you should be able to run
mix and the up arrow won’t break
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 (!)
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
Hey @garazdawi that seems to be the one, thank you!