Vous pouvez personnaliser l'emplacement via backup-directory-alist
. Chaque entrée de la liste indique où placer les sauvegardes des fichiers correspondant à un modèle; si l'emplacement est nil
, la sauvegarde sera dans le même répertoire que l'original. L'ordre est important: le premier match est utilisé.
(setq backup-directory-alist '(("-autoloads\\.el\\'")
("." . "~/.emacs.d/backups")))
Si vous souhaitez supprimer complètement les sauvegardes en fonction du nom ou de l'emplacement du fichier, il ne semble pas y avoir de mécanisme intégré pour cela, mais c'est assez facile à ajouter. La variable backup-enable-predicate
contient le nom d'une fonction qui détermine si un fichier doit avoir des sauvegardes. Le paramètre par défaut normal-backup-enable-predicate
empêche uniquement les sauvegardes dans les répertoires qu'Emacs utilise pour les fichiers temporaires. Vous pouvez également ajouter votre propre fonction qui vérifie le nom du fichier.
(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)
Même si cette fonction revient t
, d'autres mécanismes peuvent désactiver les sauvegardes.
Si vous souhaitez désactiver les sauvegardes dans un mode majeur spécifique, définissez-le make-backup-files
sur nil
le hook de configuration du mode principal (éventuellement en fonction du nom de fichier et d'autres caractéristiques). N'oubliez pas de rendre la variable buffer-local.
Une autre façon de désactiver les sauvegardes de certains fichiers est de définir backup-inhibited
. Cette variable survit à un changement de mode majeur. C'est ainsi que VC désactive les sauvegardes sur les fichiers sous contrôle de version (via une entrée dans file-find-hook
). N'oubliez pas de rendre la variable buffer-local.
Gilles 'SO- arrête d'être méchant'
la source