Coloque todos os backups em uma pasta de backup

15

Como posso configurar o Emacs para que todos os backups sejam colocados em uma pasta de backup? por exemplo/MyEmacsBackups

Luke Shimkus
fonte
Esteja ciente de que isso pode ter o efeito colateral não intencional de deixar informações confidenciais em sua máquina, mesmo depois que os originais forem movidos / excluídos. Seria aconselhável limpar esta pasta de backup ocasionalmente. Esses arquivos de backup também podem ter permissões diferentes dos originais.
Nispio 23/09/14

Respostas:

17

Confira backup-directory-alist, que permite definir locais de backup por regexp de arquivo. Para que tudo vá para um diretório, tente algo como:

(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))

Para os verdadeiramente paranóicos (como eu), também há backup-a-salvar , que (como o nome sugere) faz backup de seus arquivos sempre que eles são salvos em um local conveniente. Isso oferece uma camada extra de proteção sobre o controle de versão tradicional, por exemplo, nos casos em que você acidentalmente limpa seu diretório de trabalho sem fazer check-in.

shosti
fonte
11

A seguir está um código rápido do meu .emacs. Ele não apenas coloca backups em um diretório específico, mas também salva automaticamente, e faz o mesmo com arquivos tramp, para que não sejam colocados no sistema remoto.

;; Put backup files neatly away                                                 
(let ((backup-dir "~/tmp/emacs/backups")
      (auto-saves-dir "~/tmp/emacs/auto-saves/"))
  (dolist (dir (list backup-dir auto-saves-dir))
    (when (not (file-directory-p dir))
      (make-directory dir t)))
  (setq backup-directory-alist `(("." . ,backup-dir))
        auto-save-file-name-transforms `((".*" ,auto-saves-dir t))
        auto-save-list-file-prefix (concat auto-saves-dir ".saves-")
        tramp-backup-directory-alist `((".*" . ,backup-dir))
        tramp-auto-save-directory auto-saves-dir))

(setq backup-by-copying t    ; Don't delink hardlinks                           
      delete-old-versions t  ; Clean up the backups                             
      version-control t      ; Use version numbers on backups,                  
      kept-new-versions 5    ; keep some new versions                           
      kept-old-versions 2)   ; and some old ones, too                           
Jorgen Schäfer
fonte
1
;; put all backup files into ~/MyEmacsBackups
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
(setq backup-by-copying t)
CyberSnoopy
fonte
Qual é o benefício da sua resposta sobre a do shosti?
Gilles 'SO- stop be evil'
@Gilles Não muito, gnu.org/software/emacs/manual/html_node/emacs/…
CyberSnoopy
0

Coloque isso no seu arquivo init. Mude o caminho para o diretório de backup escolhido.

;;backup directory
(setq backup-directory-alist '(("" . "~/.emacs.d/emacs_backup")))
Nsukami _
fonte