Deaktivieren Sie automatische Sicherungen für bestimmte Dateien

10

Emacs hat lange Zeit Backups für alle Dateien in einem einzigen Ordner abgelegt:

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

Ich besuche das backupsVerzeichnis kaum , aber kürzlich habe ich festgestellt, dass es viele*-autoloads.el Dateien enthält, für die ich keine Backups benötige. Wie kann ich Emacs anweisen, keine Backups dieser Dateitypen zu erstellen?

itsjeyd
quelle

Antworten:

14

Sie können den Standort über anpassen backup-directory-alist. Jeder Eintrag in der Liste gibt an, wo die Sicherungen von Dateien abgelegt werden sollen, die einem Muster entsprechen. Wenn sich der Speicherort befindet nil, befindet sich die Sicherung im selben Verzeichnis wie das Original. Die Reihenfolge ist wichtig: Das erste Match wird verwendet.

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

Wenn Sie Sicherungen auf der Grundlage des Dateinamens oder des Speicherorts vollständig unterdrücken möchten, scheint es dafür keinen integrierten Mechanismus zu geben, aber das Hinzufügen ist einfach genug. Die Variable backup-enable-predicateenthält den Namen einer Funktion, die bestimmt, ob eine Datei Sicherungen enthalten soll. Die Standardeinstellung verhindert normal-backup-enable-predicatenur Sicherungen in den Verzeichnissen, die Emacs für temporäre Dateien verwendet. Sie können eine eigene Funktion hinzufügen, die auch den Dateinamen überprüft.

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

Selbst wenn diese Funktion zurückgegeben wird t, können andere Mechanismen Sicherungen deaktivieren.

Wenn Sie Sicherungen in einem bestimmten Hauptmodus deaktivieren möchten, stellen Sie make-backup-filessie nilim Setup-Hook des Hauptmodus ein (möglicherweise basierend auf dem Dateinamen und anderen Merkmalen). Vergessen Sie nicht, die Variable buffer-local zu machen.

Eine andere Möglichkeit, Sicherungen für bestimmte Dateien zu deaktivieren, ist das Festlegen backup-inhibited. Diese Variable überlebt einen großen Moduswechsel. Auf diese Weise deaktiviert VC Sicherungen für Dateien unter Versionskontrolle (durch einen Eintrag in file-find-hook). Vergessen Sie nicht, die Variable buffer-local zu machen.

Gilles 'SO - hör auf böse zu sein'
quelle