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