将所有备份放入一个备份文件夹


15

如何设置Emacs,以便将所有备份都放在一个备份文件夹中?例如/MyEmacsBackups


请注意,即使在移动/删除原稿之后,这也会产生意想不到的副作用,使敏感信息在您的机器上徘徊。建议偶尔清除此备份文件夹。这些备份文件也可能具有与原始文件不同的权限。
nispio 2014年

Answers:


17

签出backup-directory-alist,它使您可以通过文件regexp设置备份位置。要使所有内容进入一个目录,请尝试以下操作:

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

对于真正的偏执狂(像我一样),还有backup-each-save,顾名思义,该文件每次保存在方便的位置时都会备份文件。与传统的版本控制相比,这提供了额外的保护层,例如,在您意外清除工作目录而未检入某些内容的情况下。


12

以下是我的快速代码.emacs。它不仅将备份放到特定目录中,而且还自动保存,并且对流浪者文件也是如此,因此不会将其放到远程系统中。

;; 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                           


0

将此放入您的init文件中。将路径更改为所选的备份目录。

;;backup directory
(setq backup-directory-alist '(("" . "~/.emacs.d/emacs_backup")))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.