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 a
und 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.
indentation
newlines
WeSenseASoulInSearchOfAnswers
quelle
quelle
M-x view-emacs-news
(oderC-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.Antworten:
Deaktivieren
electric-indent-mode
: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, dassRET
("Enter") jetzt automatischC-j
einrückt und Sie drücken müssen , um nur eine neue Zeile mit zu erhalten Keine Einrückung. Sie wurden vertauschtRET
undC-j
tatsächlich. Wenn SieRET
einrücken möchten , sollte das neue Standardverhalten Ihnen das geben, was Sie wollen. In jedem Fall lautet der Moduselectric-indent-mode
: Schalten Sie es ein oder aus, wie Sie möchten .)quelle
Es besteht die Möglichkeit, ein Zeilenumbruchzeichen mit einzufügen,
C-q C-j
und es gibt 3 Befehle, um die Zeile zu teilen: und dieopen-line C-o
,split-line C-M-o
dienewline RET, C-m
Sie verwendet haben. Wenn Sie den Cursor so positionieren, wie Sie es nach dem gesagt haben,a
und drücken, wirdC-o
die 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-o
der aktuellen Zeile wird auch am Ende ein zusätzliches Leerzeichen angezeigt, so dass dieb
und die Cursorpositionen nach der Änderung in einer Linie stehen.Im Grundmodus
C-j
ändert sich der Puffer nach Ihren Wünschen auf meinem Rechner undC-j
ist gebunden anelectric-newline-and-maybe-indent
quelle