backup – Desactive las copias de seguridad automáticas de archivos específicos

Pregunta:

Durante mucho tiempo, Emacs colocó copias de seguridad de todos los archivos en una sola carpeta:

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

Casi nunca visito el directorio de backups , pero recientemente me di cuenta de que contiene muchos archivos *-autoloads.el que no necesito copias de seguridad. ¿Cómo puedo decirle a Emacs que no haga copias de seguridad de este tipo de archivos?

Respuesta:

Puede personalizar la ubicación a través de backup-directory-alist . Cada entrada de la lista dice dónde colocar las copias de seguridad de los archivos que coinciden con un patrón; si la ubicación es nil , la copia de seguridad estará en el mismo directorio que la original. El orden importa: se utiliza la primera coincidencia.

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

Si desea suprimir las copias de seguridad por completo sobre la base del nombre del archivo o la ubicación, no parece haber un mecanismo incorporado para eso, pero es bastante fácil de agregar. La variable backup-enable-predicate contiene el nombre de una función que determina si un archivo debe tener copias de seguridad. La configuración predeterminada normal-backup-enable-predicate solo inhibe las copias de seguridad en los directorios que Emacs usa para los archivos temporales. Puede agregar su propia función que también verifique el nombre del archivo.

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

Incluso si esta función devuelve t , otros mecanismos pueden deshabilitar las copias de seguridad.

Si desea deshabilitar las copias de seguridad en un modo principal específico, establezca make-backup-files en nil en el enlace de configuración del modo principal (posiblemente según el nombre del archivo y otras características). No olvide hacer que la variable sea local al búfer.

Otra forma de deshabilitar las copias de seguridad de ciertos archivos es establecer backup-inhibited . Esta variable sobrevive a un cambio de modo importante. Así es como VC deshabilita las copias de seguridad en archivos bajo control de versiones (a través de una entrada en file-find-hook ). No olvide hacer que la variable sea local al búfer.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım