Evaluasi variabel saat memasukkan teks ke dalam buffer
Ketika saya membuka file baru untuk pengkodean, saya ingin memasukkan header seperti ini:
#####################################################################
# Purpose:
# Author: me ([email protected])
# Date:
#####################################################################
Aku terus teks ini dalam file yang disebut headerdalam ~/.emacs.d/dan saya masukkan seperti:
;; Insert header to file
(defun header()
"Insert header into file"
(interactive)
(insert-file "~/.emacs.d/header"))
yang saya sebut dengan M+x header. Sangat keren! Saya juga memiliki fungsi untuk menambahkan tanggal:
;; Insert today's date
(defun today ()
"Insert today's date"
(interactive)
(insert (format-time-string "%Y-%m-%d")))
yang saya panggil M+x todaysetelah memasukkan teks header saya untuk mengisi Date:bidang.
T: Apakah ada cara agar saya bisa menggabungkan fungsi-fungsi ini sehingga tanggal secara otomatis disisipkan setelah Date:saya menyisipkan teks header saya? Misalnya, dapatkah saya menambahkan (format-time-string "%Y-%m-%d")setelah Date:di headerfile saya dan mengevaluasinya saat dimasukkan?
Jawaban
Di dalam GNU Emacs hanya imajinasi Anda yang menjadi batasnya :)
Saya pikir Anda sedang mencari sesuatu di sepanjang baris berikut, meskipun beberapa penyesuaian mungkin diperlukan.
(defun header()
"Insert header into file"
(interactive)
(insert-file "~/.emacs.d/header")
(re-search-backward "Date:")
(insert (format-time-string "%Y-%m-%d")))