2016-04-15 44 views
16

在IEx 1.2.4中鍵入()時,光標將跳轉到匹配的括號並返回1秒。儘管它並不真正跳躍,但它有點令人討厭。有沒有辦法在IEx中禁用此功能?在Erlang shell中禁用跳轉游標

編輯:

雖然最初問題有關IEx標誌,實際的問題(如在下面他的評論@tkowal指出的)實際上是在IEx標誌之上運行Erlang的外殼。因此我在這個問題中添加了erlang-shell標籤。

+3

沒有運氣。這是底層Erlang外殼的功能,不可配置。我認爲'iex --erl -oldshell'可以工作,因爲它沒有這個功能,但是iex在這種模式下根本不會啓動。它需要現代的外殼。 – tkowal

+0

您可能想要更改問題的措辭並重新編輯它。這可能是Erlang人可能有一些想法。 –

+0

我改變了標題,以反映這是一個Erlang shell問題 – Zepplock

回答

6

光標跳躍發生在lib/stdlib/src/edlin.erl(在Erlang的stdlib中)。具體來說,它似乎發生在第205至213行,這是),]}似乎被捕獲並轉換爲指令來移動光標(然後通過erl的監督樹中的各種進程一路發送達到user_drv,然後將必要的命令發送到端口tty_sl,使光標移動請求發生)。

不幸的是,沒有辦法(AFAICT)禁用該功能,而不涉及在該位置修補代碼(無論是通過註釋掉這些行還是通過添加額外的警衛來檢查傳遞給erl的新選項)。如果你打算修補這個文件並重新編譯Erlang,那就去做吧。否則,至少有人嘗試圍繞該行爲實施配置選項是一個起點。

+0

謝謝,它的工作原理。我在此將其作爲參考,因爲我不得不穀歌它:http://erlang.org/pipermail/erlang-questions/2001-July/003416.html – skamsie