Search code examples
elixirreadlineelixir-iex

Elixir: Behaviour of Backspace in iex


I'm using Elixir 1.15.0 with Erlang/OTP 26 on Arch Linux. I haven't configured anything; I'm just using the default setup.

When I type the following code in IEx:

i <- [1, 2, 3], j <- [10, 20, 30], into: %{}, do: "#{i}*{j}

And then press [Backspace], because I forgot the # before {j}, the result looks as follows:

i <- [1, 2, 3], j <- [10, 20, 30], into: %{}, do: "#{

Not only } (what I'd expect) or {j} (which would be convenient) was deleted, but also the i} part that was correct.

I noticed that [Backspace] in IEx deletes not only single characters, but entire symbols. This behaviour is not useful for me, because all the other REPLs I'm using behave differently.

How can I get my regular backspace function back in IEx?

Edit 1: The backspace character works as usual in the terminal outside of iex. My $TERM is xterm-256color. I also tested it with my default terminal qterminal as well as xterm, in which iex misbehaves the same way.

Edit 2: I have the exact same behaviour in erl, so it might be an Erlang issue, not one of the Elixir project. What's the common ground of those two REPLs?


Solution

  • The issue has been resolved in Erlang OTP 26.2.1.