Ich möchte (programmgesteuert) Text direkt nach dem Punkt einfügen (ohne ihn zu verschieben). Ich habe mir das ausgedacht:
(save-excursion (insert "my text"))
Es scheint zu funktionieren. Ist es eine gute Möglichkeit, das zu tun, was ich will? Gibt es beispielsweise Situationen, in denen dies brechen könnte? (Anders als diejenigen, bei denen insert
sowieso kaputt gehen würde, wie beispielsweise schreibgeschützte Puffer.) Unterscheidet es sich von dem, was erfahrene Elisp-Hacker tun würden?
text-editing
point
mbork
quelle
quelle
save-excursion
+insert
der richtige Weg.Antworten:
Ein sehr häufiges Beispiel für dieses Verhalten ist
electric-pair-mode
die Emacs-Standardbibliothek. Wenn Sie diesen Modus noch nie benutzt haben, dann (zitiert aus dem Handbuch ):Sie können den Code überprüfen, um
electric-pair-post-self-insert-function
zu sehen, wie das Einfügen ausgeführt wird. Spoiler:quelle
Ja, das ist die idiomatischste Art, Text nach einem mir bekannten Punkt einzufügen.
save-excursion
ist sehr widerstandsfähig gegenüber Änderungen im Puffer, daher ist dies die bevorzugte Methode zur destruktiven Bearbeitung. Der einzige Ort, an dem Sie wahrscheinlich auf Probleme stoßen, ist der, an dem Sie Probleme mit sichinsert
selbst haben würden, z. B. Puffer, in denen Text schreibgeschützt ist.quelle