禁用 Erlang shell 中的跳跃光标

19

在IEx 1.2.4中,当输入()时,光标会跳转到匹配的括号上并返回,尽管实际上它并没有真正跳动,但这会让人感到不适。有没有办法在IEx中禁用此功能?

编辑:

尽管最初的问题涉及IEx,但实际问题(如@tkowal在下面的评论中指出的)实际上是在Erlang Shell中,而IEx是在其之上运行的。因此,我将erlang-shell标签添加到了这个问题中。


3
没办法,这是底层的 Erlang shell 的特性,无法进行配置。我认为也许使用 iex --erl -oldshell 可以解决,因为它没有这个特性,但是在那种模式下 iex 根本无法启动。它需要现代化的 shell。 - tkowal
您可能需要修改问题的措辞并重新标记它。也许Erlang的人员会有一些想法。 - Onorio Catenacci
我已更改标题以反映这是Erlang shell问题。 - Zepplock
今天我花了整个早上的时间去寻找它,@tkowal是正确的-它是不可配置的。我检查了整个shell、shell_default和其他有关Erlang的文档,我非常确定它无法更改。此外,IEx在erl oldshell上也无法工作。 - PatNowak
我已经创建了https://groups.google.com/forum/#!topic/elixir-lang-core/UiWQkj8OOKM。 - nhooyr
1个回答

9
光标跳动发生在lib/stdlib/src/edlin.erl(在Erlang的stdlib中)。具体来说,它似乎发生在第205到213行,这是其中)]}被捕获并转换为移动光标指令的地方(然后通过erl的监视树中的各个进程发送,最终到达user_drv,然后发送必要的命令到tty_sl端口使光标移动请求发生)。
不幸的是,没有(据我所知)禁用该功能的方法,除非涉及到修补该位置的代码(无论是通过注释掉这些行还是添加附加的保护以检查传递给erl的新选项)。如果您想修补该文件并重新编译Erlang,那就去吧。否则,至少它是某人尝试围绕该行为实现配置选项的起点。

1
谢谢,它有效。我将其留在这里作为参考,因为我不得不通过Google查找它:http://erlang.org/pipermail/erlang-questions/2001-July/003416.html - skamsie
1
http://erlang.org/pipermail/erlang-questions/2016-May/089186.html - 2240

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接