หลังจากเรียกใช้recover-this-file
และยอมรับเวอร์ชันบันทึกอัตโนมัติคุณจะมีบัฟเฟอร์ที่แก้ไขซึ่งมีเนื้อหาบันทึกอัตโนมัติ ณ จุดนี้คุณสามารถใช้M-x diff-buffer-with-file
RETเพื่อดูความแตกต่างระหว่างบัฟเฟอร์ที่แก้ไขและไฟล์ที่บันทึก
กุญแจที่ฉันผูกไว้สำหรับสิ่งนี้จริง ๆ แล้วเรียกใช้ฟังก์ชันที่กำหนดเองเพื่อสร้าง diff แบบรวมและข้ามพรอมต์สำหรับบัฟเฟอร์ (ซึ่งถือว่าเป็นบัฟเฟอร์ปัจจุบัน)
(defun my-diff-buffer-with-file ()
"Compare the current modified buffer with the saved version."
(interactive)
(let ((diff-switches "-u")) ;; unified diff
(diff-buffer-with-file (current-buffer))))
นอกจากนี้ยังมีสิ่งที่เทียบเท่า ediff (ซึ่งฉันชอบโดยทั่วไปแม้ว่าฉันจะใช้ทั้งสองอย่าง) ซึ่งมีให้ที่ M-x ediff-current-file
RET
หากคุณต้องการปฏิเสธการแก้ไขหลังจากตรวจสอบ diff คุณควรจะสามารถundo
กู้คืนได้อย่างง่ายดาย (ความล้มเหลวที่คุณสามารถใช้revert-buffer
หรือfind-alternate-file
.)
เนื่องจากการโยงคีย์สำหรับคำสั่ง diff มักจะเกี่ยวข้อง=ฉันค้นหาสิ่งที่สะดวกสบายต่อไปนี้ (หมายเหตุ: ฉันได้ยกเลิกการC-z
เชื่อมโยงเริ่มต้นแล้วและย้ายมันไปC-z C-z
ที่ซึ่งเปิดขึ้นC-z
เป็นคำนำหน้าสำหรับการผูกแบบกำหนดเอง):
(global-set-key (kbd "C-z =") 'my-diff-buffer-with-file)
(global-set-key (kbd "C-z C-=") 'ediff-current-file)