problema di rientro automatico di Python


11

Sto usando Emacs 24.4. Quando si scrive il codice Python, Emacs si comporta in modo strano rispetto al rientro.

Per esempio:

for i in range(10):
    print(i)
for i in range(10)

Quando inserisco :, Emacs aggiunge un rientro inutile all'inizio della terza riga. È abbastanza strano, è un bug?


Puoi aggiungere il tuo file .emacs init
Vivian Maya

2
@VivianMaya Questo non ha nulla a che fare con i file di configurazione, emacs -Qha ancora questo problema
Fame

il mio amico a volte il rientro poteva incrociare qualcosa, avevo un problema del genere e riguardava il superamento della definizione. Se sei sicuro che non abbia nulla a che fare con, allora chiaramente non so cosa stia succedendo.
Vivian Maya,

Risposte:


16

Questo è causato da electric-indent-mode, che è abilitato di default in Emacs 24.4. Puoi spegnerlo con

(electric-indent-mode -1)

Se non si desidera disabilitare completamente la modalità di rientro elettrico ma si desidera impedire ai due punti di attivare la modalità di rientro elettrico in modalità Python, è possibile rimuovere il carattere di due punti da electric-indent-charscui la modalità Python fornisce un valore locale.

(add-hook 'python-mode-hook
          (lambda ()
            (setq electric-indent-chars (delq ?: electric-indent-chars))))

Quello che mi piacerebbe davvero vedere è: quando il trattino che ho inserito è Python legale, LASCIAMO DA SOLO. modalità indentazione elettrica indovina senza pensarci cosa voglio quando l'ho già detto ...
AdamC

Ed ecco, molti anni dopo, è ancora rotto.
AdamC,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.