Disattiva i backup automatici per file specifici


10

Per molto tempo Emacs ha messo i backup di tutti i file in una singola cartella:

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

Ho quasi mai visitare la backupsdirectory, ma di recente ho notato che esso contiene un sacco di *-autoloads.elfile che non ho bisogno di backup per. Come posso dire a Emacs di non effettuare backup di questi tipi di file?

Risposte:


14

È possibile personalizzare la posizione tramite backup-directory-alist. Ogni voce nell'elenco indica dove posizionare i backup dei file corrispondenti a un modello; se la posizione è nil, il backup sarà nella stessa directory dell'originale. L'ordine conta: viene utilizzata la prima partita.

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

Se si desidera eliminare del tutto i backup in base al nome o alla posizione del file, non sembra esserci un meccanismo incorporato per questo, ma è abbastanza facile da aggiungere. La variabile backup-enable-predicatecontiene il nome di una funzione che determina se un file deve disporre di backup. L'impostazione predefinita normal-backup-enable-predicateinibisce solo i backup nelle directory utilizzate da Emacs per i file temporanei. Puoi aggiungere la tua funzione che controlla anche il nome del file.

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

Anche se questa funzione ritorna t, altri meccanismi possono disabilitare i backup.

Se si desidera disabilitare i backup in una modalità principale specifica, impostare make-backup-filessu nilhook di installazione della modalità principale (possibilmente in base al nome del file e ad altre caratteristiche). Non dimenticare di rendere locale la variabile buffer.

Un altro modo per disabilitare i backup per determinati file è impostare backup-inhibited. Questa variabile sopravvive a un cambio di modalità principale. È come VC disabilita i backup sui file sotto il controllo della versione (attraverso una voce in file-find-hook). Non dimenticare di rendere locale la variabile buffer.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.