2016-04-15 11 views
16

Quando si digita () in IEx 1.2.4, il cursore "salta" alla parentesi corrispondente per 1 secondo e si sposta indietro. Anche se non salta davvero ma è piuttosto fastidioso per gli occhi. C'è un modo per disabilitare questa funzione in IEx?Disabilita il salto del cursore nella shell di Erlang

EDIT:

Mentre la domanda originariamente interessata iEX, il problema effettivo (come sottolineato da @tkowal nel suo commento qui sotto) è in realtà in the Shell Erlang, che iEX corre in cima. Quindi ho aggiunto il tag erlang-shell a questa domanda.

+3

Nessuna fortuna. Questa è una caratteristica della shell Erlang sottostante e non è configurabile. Ho pensato che forse 'iex --erl -oldshell' funzionerà, perché non ha la funzione, ma iex non inizierà affatto in quella modalità. Richiede shell moderno. – tkowal

+0

Potrebbe essere necessario modificare il fraseggio della domanda e riadattarla. Può darsi che le persone di Erlang possano avere qualche idea. –

+0

Ho cambiato il titolo per riflettere che questo è un problema di shell di Erlang – Zepplock

risposta

6

Il salto del cursore avviene in lib/stdlib/src/edlin.erl (in Erlang stdlib). In particolare, sembra accadere alle righe da 205 a 213, che è dove ), ] e } sembrano essere catturati e convertiti in istruzioni per spostare il cursore (che vengono poi inviati attraverso vari processi nell'albero di supervisione di erl fino in fondo fino a user_drv, che quindi invia i comandi necessari alla porta tty_sl per fare in modo che le richieste di spostamento del cursore avvengano).

Sfortunatamente, non c'è modo (AFAICT) di disabilitare quella funzionalità che non comporta l'applicazione di patch al codice in quel punto (sia commentando quelle righe o aggiungendo guardie aggiuntive per verificare una nuova opzione passata a erl). Se hai intenzione di applicare patch a quel file e di ricompilare Erlang, prova a farlo. Altrimenti, è almeno un punto di partenza per qualcuno che tenta di implementare un'opzione di configurazione attorno a tale comportamento.

+0

Grazie, funziona. Lascio questo qui come riferimento perché dovevo google: http://erlang.org/pipermail/erlang-questions/2001-July/003416.html – skamsie

Problemi correlati