Отключить прыгающий курсор в оболочке Erlang

При вводе () в IEx 1.2.4 курсор «перескакивал» к соответствующей скобке на 1 с и возвращался назад. Хоть это и не прыгает, но глаза раздражает. Есть ли способ отключить эту функцию в IEx?

РЕДАКТИРОВАТЬ:

Хотя изначально вопрос касался IEx, фактическая проблема (как указано @tkowal в его комментарии ниже) на самом деле заключается в оболочке Erlang, поверх которой работает IEx. Поэтому я добавил к этому вопросу тег erlang-shell.


person sbs    schedule 15.04.2016    source источник
comment
Неудачно. Это функция базовой оболочки Erlang, и ее нельзя настроить. Я думал, что, возможно, iex --erl -oldshell будет работать, потому что в нем нет этой функции, но iex вообще не запускается в этом режиме. Требует современной оболочки.   -  person tkowal    schedule 16.04.2016
comment
Вы можете изменить формулировку своего вопроса и переименовать его. Возможно, у разработчиков Erlang есть какие-то идеи.   -  person Onorio Catenacci    schedule 16.04.2016
comment
Я изменил заголовок, чтобы отразить, что это проблема оболочки Erlang.   -  person Zepplock    schedule 19.04.2016
comment
Сегодня я потратил целое утро, чтобы найти его, и @tkowal имеет право - это не настраивается. Я проверил всю оболочку, shell_default и другие документы об Erlang, и я почти уверен, что это нельзя изменить. Также IEx не будет работать на erl oldshell.   -  person PatNowak    schedule 16.10.2016
comment
Я создал groups.google.com/forum/#!topic /elixir-lang-core/UiWQkj8OOKM   -  person nhooyr    schedule 11.02.2017


Ответы (1)


Перескакивание курсора происходит в lib/stdlib/src/edlin.erl (в Erlang's stdlib). В частности, это происходит в строках с 205 по 213, где ), ] и } захватываются и преобразуются в инструкции для перемещения курсора (которые затем передаются через различные процессы в дереве наблюдения erl вплоть до user_drv, который затем отправляет необходимые команды на порт tty_sl для выполнения запросов на перемещение курсора).

К сожалению, нет способа (AFAICT) отключить эту функцию, которая не требует исправления кода в этом месте (будь то закомментирование этих строк или добавление дополнительных охранников для проверки новой опции, переданной в erl). Если вы готовы исправить этот файл и перекомпилировать Erlang, то сделайте это. В противном случае это по крайней мере отправная точка для того, чтобы кто-то попытался реализовать параметр конфигурации для этого поведения.

person YellowApple    schedule 12.12.2016
comment
Спасибо, это работает. Я оставляю это здесь как ссылку, потому что мне пришлось гуглить: erlang. org/pipermail/erlang-questions/2001-July/003416.html - person skamsie; 11.08.2017