Banyak hal di Emacs yang beroperasi pada buffer saat ini. Anda perlu mengubah buffer saat ini dan mengembalikannya setelah selesai. Gunakan with-current-buffer
untuk kasus-kasus sederhana di mana Anda hanya perlu melakukan sesuatu di buffer lain, dan save-current-buffer
untuk kasus-kasus yang lebih kompleks di mana Anda perlu menavigasi antara beberapa buffer.
(defun buffer-string* (buffer)
(with-current-buffer buffer
(buffer-string)))
Jika Anda ingin konten teks dari buffer tanpa properti, panggil buffer-substring-no-properties
.
buffer-string
mengembalikan hanya bagian penyempitan penyempitan . Jika Anda membutuhkan seluruh konten, perluas itu setelah menyimpan penyempitan.
(defun buffer-whole-string (buffer)
(with-current-buffer buffer
(save-restriction
(widen)
(buffer-substring-no-properties (point-min) (point-max)))))
Jika Anda juga perlu menyimpan poinnya, hubungi save-excursion
juga. Perhatikan bahwa save-excursion
pulihkan titik hanya di buffer saat ini, jadi jika Anda perlu beralih ke buffer lain dan bergerak di sana, panggil ke save-excursion
dalam save-current-buffer
atau with-current-buffer
.