Banyak hal di Emacs yang beroperasi pada buffer saat ini. Anda perlu mengubah buffer saat ini dan mengembalikannya setelah selesai. Gunakan with-current-bufferuntuk kasus-kasus sederhana di mana Anda hanya perlu melakukan sesuatu di buffer lain, dan save-current-bufferuntuk 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-stringmengembalikan 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-excursionjuga. Perhatikan bahwa save-excursionpulihkan titik hanya di buffer saat ini, jadi jika Anda perlu beralih ke buffer lain dan bergerak di sana, panggil ke save-excursiondalam save-current-bufferatau with-current-buffer.