Поместите все резервные копии в одну папку

15

Как я могу настроить Emacs так, чтобы все резервные копии были помещены в одну папку резервных копий? например/MyEmacsBackups

Люк Шимкус
источник
Помните, что это может привести к непреднамеренному побочному эффекту, который может привести к тому, что конфиденциальная информация останется на вашем компьютере даже после перемещения / удаления оригиналов. Желательно время от времени очищать эту резервную копию. Эти файлы резервных копий также могут иметь другие разрешения, чем оригиналы.
Ниспио

Ответы:

17

Оформить заказ backup-directory-alist, который позволяет вам устанавливать места резервного копирования с помощью файла регулярных выражений. Чтобы все было в одном каталоге, попробуйте что-то вроде:

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

Для настоящих параноиков (таких как я) есть также backup-each-save , который (как следует из названия) создает резервные копии ваших файлов каждый раз, когда они сохраняются в удобном месте. Это дает дополнительный уровень защиты по сравнению с традиционным контролем версий, например, в тех случаях, когда вы случайно очищаете свой рабочий каталог, не проверяя что-либо в.

shosti
источник
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                           
Йорген Шефер
источник
1
;; put all backup files into ~/MyEmacsBackups
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
(setq backup-by-copying t)
CyberSnoopy
источник
Какая польза от твоего ответа от шости?
Жиль "ТАК - перестань быть злым"
@Gilles Не так много, gnu.org/software/emacs/manual/html_node/emacs/...
CyberSnoopy
0

Поместите это в ваш файл инициализации. Измените путь к выбранному вами каталогу резервных копий.

;;backup directory
(setq backup-directory-alist '(("" . "~/.emacs.d/emacs_backup")))
Нсуками _
источник