ปิดการสำรองข้อมูลอัตโนมัติสำหรับไฟล์เฉพาะ


10

เป็นเวลานานที่ฉันมี Emacs ทำการสำรองข้อมูลสำหรับไฟล์ทั้งหมดไว้ในโฟลเดอร์เดียว:

(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))

ผมแทบจะไม่เคยแวะไปที่backupsไดเรกทอรี แต่เมื่อเร็ว ๆ นี้ผมสังเกตเห็นว่ามันมีจำนวนมากของ*-autoloads.elไฟล์ที่ฉันไม่จำเป็นต้องสำรองข้อมูลสำหรับ ฉันจะบอก Emacs ไม่ให้ทำการสำรองไฟล์ประเภทนี้ได้อย่างไร?

คำตอบ:


14

backup-directory-alistคุณสามารถปรับแต่งสถานที่ผ่าน แต่ละรายการในรายการระบุตำแหน่งที่จะสำรองข้อมูลไฟล์ที่ตรงกับรูปแบบ หากสถานที่นั้นnilการสำรองข้อมูลจะอยู่ในไดเรกทอรีเดียวกับต้นฉบับ ลำดับสำคัญ: การแข่งขันครั้งแรกถูกนำมาใช้

(setq backup-directory-alist '(("-autoloads\\.el\\'")
                               ("." . "~/.emacs.d/backups")))

หากคุณต้องการที่จะระงับการสำรองข้อมูลทั้งหมดบนพื้นฐานของชื่อไฟล์หรือที่ตั้งจะไม่มีกลไกในตัวสำหรับมัน แต่มันง่ายพอที่จะเพิ่ม ตัวแปรbackup-enable-predicateมีชื่อของฟังก์ชันที่พิจารณาว่าไฟล์ควรมีการสำรองข้อมูลหรือไม่ การตั้งค่าเริ่มต้นnormal-backup-enable-predicateจะยับยั้งการสำรองข้อมูลในไดเรกทอรีที่ Emacs ใช้สำหรับไฟล์ชั่วคราวเท่านั้น คุณสามารถเพิ่มฟังก์ชั่นของคุณเองที่ตรวจสอบชื่อไฟล์ได้เช่นกัน

(defvar backup-inhibit-file-name-regexp "-autoloads\\.el\\'"
  "Files whose full path matches this regular expression will not be backed up.")
(defun regexp-backup-enable-predicate (filename)
  "Disable backups for files whose name matches `backup-inhibit-file-name-regexp'.
Also call `normal-backup-enable-predicate'."
  (save-match-data
    (and (not (string-match backup-inhibit-file-name-regexp filename))
     (normal-backup-enable-predicate filename))))
(setq backup-enable-predicate 'regexp-backup-enable-predicate)

แม้ว่าฟังก์ชันนี้จะส่งคืนtแต่กลไกอื่น ๆ สามารถปิดใช้งานการสำรองข้อมูลได้

หากคุณต้องการสำรองข้อมูลปิดการใช้งานในโหมดที่สำคัญเฉพาะการตั้งค่าmake-backup-filesที่จะnilอยู่ในโหมดหลักของการติดตั้งตะขอ (อาจจะขึ้นอยู่กับชื่อไฟล์และลักษณะอื่น ๆ ) อย่าลืมทำให้ตัวแปรบัฟเฟอร์ในเครื่อง

backup-inhibitedวิธีการสำรองข้อมูลปิดการใช้งานสำหรับไฟล์บางอย่างก็คือการตั้งค่า ตัวแปรนี้มีการเปลี่ยนแปลงโหมดที่สำคัญ เป็นวิธีที่ VC ปิดใช้งานการสำรองข้อมูลในไฟล์ภายใต้การควบคุมเวอร์ชัน (ผ่านรายการในfile-find-hook) อย่าลืมทำให้ตัวแปรบัฟเฟอร์ในเครื่อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.