Tắt sao lưu tự động cho các tệp cụ thể


10

Trong một thời gian dài, tôi đã có Emac đặt các bản sao lưu cho tất cả các tệp vào một thư mục:

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

Tôi hầu như không bao giờ tham quan backupsthư mục, nhưng gần đây tôi nhận thấy rằng nó chứa một rất nhiều của *-autoloads.eltập tin mà tôi không cần phải sao lưu cho. Làm cách nào tôi có thể nói với Emacs không sao lưu các loại tệp này?

Câu trả lời:


14

Bạn có thể tùy chỉnh vị trí thông qua backup-directory-alist. Mỗi mục trong danh sách cho biết nơi đặt các bản sao lưu của các tệp khớp với một mẫu; nếu vị trí là nil, bản sao lưu sẽ nằm trong cùng thư mục với bản gốc. Thứ tự quan trọng: trận đấu đầu tiên được sử dụng.

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

Nếu bạn muốn loại bỏ các bản sao lưu hoàn toàn trên cơ sở tên tệp hoặc vị trí, dường như không có một cơ chế tích hợp nào cho việc đó, nhưng nó đủ dễ để thêm vào. Biến backup-enable-predicatechứa tên của hàm xác định xem một tệp có nên sao lưu hay không. Cài đặt mặc định normal-backup-enable-predicatechỉ ngăn chặn các bản sao lưu trong các thư mục mà Emacs sử dụng cho các tệp tạm thời. Bạn có thể thêm chức năng của riêng bạn để kiểm tra tên tệp.

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

Ngay cả khi chức năng này trở lại t, các cơ chế khác có thể vô hiệu hóa các bản sao lưu.

Nếu bạn muốn sao lưu vô hiệu hóa trong một chế độ chính cụ thể, thiết lập make-backup-filesđể niltrong móc thiết lập chế độ lớn của (có thể dựa vào tên tập tin và các đặc điểm khác). Đừng quên tạo bộ đệm biến cục bộ.

Một cách khác để vô hiệu hóa sao lưu cho một số tệp nhất định là đặt backup-inhibited. Biến này tồn tại một sự thay đổi chế độ chính. Đó là cách VC vô hiệu hóa các bản sao lưu trên các tệp dưới sự kiểm soát phiên bản (thông qua một mục nhập file-find-hook). Đừng quên tạo bộ đệm biến cục bộ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.