ตั้งแต่การประมวลผลของเส้นทางขจัดตะกรันที่มีข้อความตามหลักหนึ่งสามารถใช้และwrite-region
insert-file-contents
อย่างไรก็ตามรายละเอียดบางอย่างจะต้องได้รับการพิจารณา รหัส Elisp ต่อไปนี้จะช่วยให้คุณเขียนบัฟเฟอร์คำนวณเส้นทางปัจจุบันไปยังดิสก์ด้วยและคุณสามารถอ่านกลับสิ่งนี้ที่ตำแหน่งของเคอร์เซอร์ปัจจุบันด้วยC-x C-sC-x i
หลังจากนั้นคุณสามารถใช้การcalc-trail-mode
เชื่อมโยงเพื่อประเมินชิ้นส่วนของคำสั่งการอ่านเข้า
(defvar-local calc-trail-buffer-file-name nil
"Like `buffer-file-name' for calc-trail buffers.")
(defun calc-trail-save (&optional filename)
"Save current calc trail buffer.
To be used in `write-contents-functions'.
Append with current prefix arg."
(interactive "FCalc Trail File: ")
(unless filename
(setq calc-trail-buffer-file-name
(expand-file-name (setq filename
(read-file-name "Calc Trail File: " nil calc-trail-buffer-file-name)))))
(when (null (derived-mode-p 'calc-trail-mode))
(user-error "Saving calc trail buffers requires calc-trail-mode"))
(save-point
(save-restriction
(widen)
(let* ((b-trail (progn (goto-char 1) (1+ (line-end-position))))
(b (progn (goto-char (max (or (and (use-region-p) (region-beginning)) (point-min)) b-trail))
(line-beginning-position)))
(e (progn (goto-char (max (or (and (use-region-p) (region-end)) (point-max)) b-trail))
(line-end-position))))
(write-region b e filename current-prefix-arg)))))
(defun calc-insert-file (filename)
"Insert calc-trail file FILENAME at point."
(interactive "FCalc trail file: ")
(when (= (line-beginning-position) 1)
(goto-char (1+ (line-end-position))))
(goto-char (line-beginning-position
(if (looking-at "[[:space:]]*$")
2
1)))
(let ((inhibit-read-only t))
(insert-file-contents filename)
(when (and (null (looking-at "[[:space:]]*$"))
(null (looking-back "^[[:space:]]*" (line-beginning-position))))
(insert "\n"))))
(defun calc-trail-install-save ()
"Install `calc-trail-save' in `write-contents-functions' of `calc-trail-mode' buffers."
(push #'calc-trail-save write-contents-functions)
(local-set-key (kbd "C-x i") #'calc-insert-file))
(add-hook 'calc-trail-mode-hook #'calc-trail-install-save)