Me gustaría insertar (mediante programación) algo de texto justo después del punto (sin moverlo). Se me ocurrió esto:
(save-excursion (insert "my text"))
Parece funcionar. ¿Es una buena manera de hacer lo que quiero? Por ejemplo, ¿hay situaciones en las que esto podría romperse? (Aparte de los que insert
se romperían de todos modos, como los buffers de solo lectura). ¿Es diferente de lo que harían los hackers de Elisp más experimentados?
text-editing
point
mbork
fuente
fuente
save-excursion
+insert
es el camino a seguir.Respuestas:
Un ejemplo muy común de este comportamiento está
electric-pair-mode
en la biblioteca estándar de Emacs. Si nunca antes ha usado este modo, (citando el manual ):Puede consultar el código para
electric-pair-post-self-insert-function
ver cómo se realiza la inserción. Revelación:fuente
Sí, esa es la forma más idiomática de insertar texto después de un punto que conozco.
save-excursion
es muy resistente a los cambios en el búfer, por lo que es la forma preferida de hacer una edición destructiva. El único lugar donde es probable que tenga problemas es donde tendría problemas consigoinsert
mismo, como los búferes donde algunos textos son de solo lectura.fuente