Emacs-Konfigurations-Lisp-Code, der den Electric-Indent-Modus vor und nach dem Einfügen aus der Zwischenablage ändert

Emacs-Konfigurations-Lisp-Code, der den Electric-Indent-Modus vor und nach dem Einfügen aus der Zwischenablage ändert

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.“

verwandte Informationen