Możesz dostosować lokalizację poprzez backup-directory-alist
. Każda pozycja na liście mówi, gdzie umieścić kopie zapasowe plików pasujących do wzorca; jeśli lokalizacja jest nil
, kopia zapasowa będzie w tym samym katalogu, co oryginał. Kolejność ma znaczenie: używane jest pierwsze dopasowanie.
(setq backup-directory-alist '(("-autoloads\\.el\\'")
("." . "~/.emacs.d/backups")))
Jeśli chcesz całkowicie pominąć tworzenie kopii zapasowych na podstawie nazwy pliku lub lokalizacji, wydaje się, że nie ma do tego wbudowanego mechanizmu, ale można go łatwo dodać. Zmienna backup-enable-predicate
zawiera nazwę funkcji, która określa, czy plik powinien mieć kopie zapasowe. Ustawienie domyślne normal-backup-enable-predicate
blokuje tworzenie kopii zapasowych tylko w katalogach używanych przez Emacsa do plików tymczasowych. Możesz dodać własną funkcję, która również sprawdza nazwę pliku.
(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)
Nawet jeśli ta funkcja powróci t
, inne mechanizmy mogą wyłączyć kopie zapasowe.
Jeśli chcesz wyłączyć tworzenie kopii zapasowych w określonym trybie dur ustawiony make-backup-files
na nil
hak ustawień głównych trybach (ewentualnie na podstawie nazwy pliku i innych cech). Nie zapomnij ustawić zmiennej bufora na lokalną.
Innym sposobem wyłączenia kopii zapasowych dla niektórych plików jest ustawienie backup-inhibited
. Ta zmienna przetrwa poważną zmianę trybu. W ten sposób VC wyłącza tworzenie kopii zapasowych plików pod kontrolą wersji (poprzez wpis w file-find-hook
). Nie zapomnij ustawić zmiennej bufora na lokalną.