Desativar backups automáticos para arquivos específicos

10

Durante muito tempo, o Emacs colocou backups de todos os arquivos em uma única pasta:

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

Eu quase nunca visitar o backupsdiretório, mas recentemente eu notei que ele contém uma grande quantidade de *-autoloads.elarquivos que eu não preciso de backups para. Como posso dizer ao Emacs para não fazer backups desses tipos de arquivos?

itsjeyd
fonte

Respostas:

14

Você pode personalizar o local backup-directory-alist. Cada entrada na lista indica onde colocar os backups dos arquivos que correspondem a um padrão; se o local for nil, o backup estará no mesmo diretório que o original. A ordem é importante: a primeira correspondência é usada.

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

Se você deseja suprimir completamente os backups com base no nome ou no local do arquivo, não parece haver um mecanismo interno para isso, mas é fácil adicionar isso. A variável backup-enable-predicatecontém o nome de uma função que determina se um arquivo deve ter backups. A configuração padrão normal-backup-enable-predicateapenas inibe os backups nos diretórios que o Emacs usa para arquivos temporários. Você pode adicionar sua própria função que também verifica o nome do arquivo.

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

Mesmo se essa função retornar t, outros mecanismos podem desativar os backups.

Se você quiser backups desativar em um modo principal específico, definir make-backup-filesa nilno gancho de instalação a maior do modo (possivelmente com base no nome do arquivo e outras características). Não se esqueça de tornar a variável buffer-local.

Outra maneira de desativar os backups de certos arquivos é definir backup-inhibited. Essa variável sobrevive a uma grande mudança de modo. É como o VC desativa os backups dos arquivos sob controle de versão (por meio de uma entrada em file-find-hook). Não se esqueça de tornar a variável buffer-local.

Gilles 'SO- parar de ser mau'
fonte