Вимкніть автоматичне резервне копіювання для конкретних файлів


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). Не забудьте зробити буфер змінної місцевим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.