Python Auto Indent Problem


11

Ich benutze Emacs 24.4. Beim Schreiben von Python-Code verhält sich Emacs in Bezug auf Einrückungen seltsam.

Beispielsweise:

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

Bei der Eingabe :fügt Emacs am Anfang der dritten Zeile einen unnötigen Einzug hinzu. Das ist ziemlich seltsam, ist das ein Fehler?


Können Sie Ihre .emacs Init-Datei hinzufügen
Vivian Maya

2
@ VivianMaya Dies hat nichts mit Konfigurationsdateien zu tun, hat emacs -Qimmer noch dieses Problem
Hunger

Mein Freund, manchmal, Einrückung könnte etwas kreuzen, ich hatte ein Problem wie dieses und das war über das Überqueren der Definition. Wenn Sie sicher sind, dass es nichts damit zu tun hat, dann weiß ich eindeutig nicht, was los ist.
Vivian Maya

Antworten:


16

Dies wird verursacht durch electric-indent-mode, was in Emacs 24.4 standardmäßig aktiviert ist. Sie können es mit ausschalten

(electric-indent-mode -1)

Wenn Sie den elektrischen Einrückungsmodus nicht vollständig deaktivieren möchten, aber den Doppelpunkt daran hindern möchten, den elektrischen Einrückungsmodus im Python-Modus zu aktivieren, können Sie das Doppelpunktzeichen entfernen, aus electric-indent-charsdem der Python-Modus einen lokalen Wert ergibt.

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

Was ich wirklich gerne sehen würde, ist: Wenn der Einzug, den ich eingefügt habe, legal Python ist, LASSEN SIE ES ALLEIN. Elektro-Einrückungs-Modus errät gedankenlos, was ich will, wenn ich es bereits gesagt habe ...
AdamC

Und siehe da, diese vielen Jahre später ist es immer noch kaputt.
AdamC vor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.