Masukkan semua cadangan ke dalam satu folder cadangan

15

Bagaimana saya mengatur Emacs sehingga semua cadangan ditempatkan ke dalam satu folder cadangan? misalnya/MyEmacsBackups

Luke Shimkus
sumber
Ketahuilah bahwa ini bisa memiliki efek samping yang tidak diinginkan dengan membiarkan informasi sensitif tetap ada di mesin Anda, bahkan setelah dokumen asli dipindahkan / dihapus. Sebaiknya bersihkan folder cadangan ini sesekali. File cadangan ini juga mungkin memiliki izin berbeda dari aslinya.
nispio

Jawaban:

17

Lihat backup-directory-alist, yang memungkinkan Anda untuk mengatur lokasi cadangan dengan file regexp. Agar semuanya masuk ke satu direktori, coba sesuatu seperti:

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

Untuk yang benar-benar paranoid (seperti saya), ada juga cadangan-setiap-penyimpanan , yang (seperti namanya) membuat cadangan file Anda setiap kali disimpan di lokasi yang nyaman. Ini memberikan lapisan perlindungan ekstra terhadap kontrol versi tradisional, misalnya untuk kasus-kasus ketika Anda secara tidak sengaja menghapus direktori kerja Anda tanpa memeriksa sesuatu.

shosti
sumber
12

Berikut ini adalah kode cepat dari saya .emacs. Itu tidak hanya menempatkan cadangan ke direktori tertentu, tetapi juga menyimpan otomatis, dan melakukan hal yang sama untuk file tramp sehingga tidak dimasukkan ke sistem remote.

;; 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
sumber
1
;; put all backup files into ~/MyEmacsBackups
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
(setq backup-by-copying t)
CyberSnoopy
sumber
Apa manfaat jawaban Anda dibandingkan dengan shosti?
Gilles 'SO- stop being evil'
@Gilles Tidak banyak, gnu.org/software/emacs/manual/html_node/emacs/...
CyberSnoopy
0

Masukkan ini ke dalam file init Anda. Ubah jalur ke direktori cadangan yang Anda pilih.

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