Wie deaktiviere ich das automatische Einrücken neuer Zeilen?

37

Ich habe kürzlich Emacs auf Version 24.4.1 aktualisiert und etwas hat sich beim Einrücken neuer Zeilen geändert. Wenn ich drücke, entererwarte ich an der Stelle, an der sich der Cursor befand, nur ein "nacktes" Zeichen für eine neue Zeile. Insbesondere, wenn ich mich in der Mitte der Zeile befinde, sollte diese Zeile geteilt und kein Zeichen einschließlich Leerzeichen gelöscht werden. Dies ist leider nicht der Fall.

Hier ist ein Beispiel:

a b

Wenn ich den Cursor kurz danach setze aund drücke, entererhalte ich:

a
b

während es sein sollte

a
 b

Ich habe ein bisschen gegoogelt und das liegt wahrscheinlich an der automatischen Einrückung. Wie kann ich dies deaktivieren? Ich spreche über Text oder Grundmodus, wenn das wichtig ist.

WeSenseASoulInSearchOfAnswers
quelle
7
Für die Nachwelt habe ich noch einen Kommentar dazu. Viele "kürzlich aufgetretene Upgrade" -Probleme können durch Lesen der NEWS mit M-x view-emacs-news(oder C-h n) behoben werden . Sie können die NEWS für jede frühere Version lesen, indem Sie ein Präfix arg hinzufügen. Wenn Sie sich die NACHRICHTEN ansehen und nach "Einrückung" suchen, ist das erste Ergebnis der Antwort von Drew sehr ähnlich. Nur ein hilfreicher Tipp bei Problemen mit Upgrades.
Kindermädchen

Antworten:

49

Deaktivieren electric-indent-mode:

(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))

Das funktioniert mit jeder Emacs-Version. Diese ärgerliche oder glänzende Neuerung wurde in Emacs 24.4 als Standard eingeführt.

Siehe auch diesen ähnlichen Beitrag auf StackOverflow.

(Es hört sich jedoch so an, als ob Sie das Gegenteil sagen und dass Sie einrücken möchten RET , aber diese Einrückung nicht erhalten. Was sich geändert hat, ist, dass RET("Enter") jetzt automatisch C-jeinrückt und Sie drücken müssen , um nur eine neue Zeile mit zu erhalten Keine Einrückung. Sie wurden vertauscht RETund C-jtatsächlich. Wenn Sie RETeinrücken möchten , sollte das neue Standardverhalten Ihnen das geben, was Sie wollen. In jedem Fall lautet der Modus electric-indent-mode: Schalten Sie es ein oder aus, wie Sie möchten .)

Drew
quelle
1

Es besteht die Möglichkeit, ein Zeilenumbruchzeichen mit einzufügen, C-q C-jund es gibt 3 Befehle, um die Zeile zu teilen: und die open-line C-o, split-line C-M-odie newline RET, C-mSie verwendet haben. Wenn Sie den Cursor so positionieren, wie Sie es nach dem gesagt haben, aund drücken, wird C-odie aktuelle Zeile nach dem Cursor unterbrochen, und jedes Zeichen befindet sich in der nächsten Zeile. split-line behält die Spaltenposition bei, sodass vor dem Inhalt ein zusätzliches Leerzeichen eingefügt wird.

Hmm, interessant, mit C-M-oder aktuellen Zeile wird auch am Ende ein zusätzliches Leerzeichen angezeigt, so dass die bund die Cursorpositionen nach der Änderung in einer Linie stehen.

Im Grundmodus C-jändert sich der Puffer nach Ihren Wünschen auf meinem Rechner und C-jist gebunden anelectric-newline-and-maybe-indent

p_wiersig
quelle