Saya ingin memasukkan (secara terprogram) beberapa teks tepat setelah titik (tanpa memindahkannya). Saya datang dengan ini:
(save-excursion (insert "my text"))
Sepertinya berhasil. Apakah ini cara yang baik untuk melakukan apa yang saya inginkan? Misalnya, apakah ada situasi di mana ini bisa pecah? (Selain yang insert
akan pecah, seperti buffer baca-saja.) Apakah berbeda dari yang akan dilakukan oleh peretas Elisp yang lebih berpengalaman?
text-editing
point
mbork
sumber
sumber
save-excursion
+insert
adalah cara untuk pergi.Jawaban:
Contoh yang sangat umum dari perilaku ini adalah
electric-pair-mode
di perpustakaan standar Emacs. Jika Anda belum pernah menggunakan mode ini sebelumnya, maka (mengutip dari manual ):Anda dapat memeriksa kode untuk
electric-pair-post-self-insert-function
melihat bagaimana menyelesaikan penyisipan. Spoiler:sumber
Ya, itu adalah cara paling idiomatis untuk memasukkan teks setelah poin yang saya tahu.
save-excursion
sangat tangguh terhadap perubahan dalam buffer, jadi itu adalah cara yang disukai untuk melakukan pengeditan yang merusak. Satu-satunya tempat Anda mungkin mengalami masalah adalah di mana Anda akan memiliki masalah denganinsert
dirinya sendiri, seperti buffer di mana beberapa teks hanya-baca.sumber