Evaluasi variabel saat memasukkan teks ke dalam buffer

Oct 29 2020

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

2 aadcg Oct 29 2020 at 22:58

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")))