
Ab Emacs 24.4 (glaube ich) wurden cj und ret vertauscht, sodass indent jetzt nach ret aufgerufen wird. Und diese Einrückungen im Textmodus sind einrückungsrelativ, sodass eingerückter Code beim Einfügen diagonal statt ausgerichtet eingefügt wird:
# copied code
line1
line2
line3
# pasted
line1
line2
line3
Ich kann diese Einstellung deaktivieren electric-indent-mode
(Flip/Flop-Befehl), aber mir gefällt das Einzug-relative Verhalten, während ich im Textmodus schreibe. Ich möchte es nur beim Einfügen von Text deaktivieren.
Hat jemand Code, mit dem ich eine Einfügeverknüpfung festlegen könnte, die den Electric-Indent-Modus aufruft, aus der Zwischenablage einfügt und den Electric-Indent-Modus erneut aktiviert?
Ich würde mich über jede didaktische Erklärung des Codes freuen, damit ich mich an mein vergessenes Elisp erinnern kann.
Antwort1
Dies sollte nur in einem Textterminal geschehen (wo „Einfügen“ dazu führt, dass der Text einfach Zeichen für Zeichen an Emacs gesendet wird, als ob Sie diese Zeichen eingegeben hätten).
Seit Emacs-25 sollte dies kein Problem mehr sein, da die Unterstützung für „Einfügen in Klammern“ vom Textterminal genutzt wird (so dass das Terminal vor und nach dem eingefügten Text spezielle Escape-Sequenzen sendet).
Es muss auch keine Konfiguration vorgenommen werden: „Es funktioniert einfach.“