You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
2.1 KiB

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;; Backup Settings
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. (setq version-control t ;; Versionsnummern für backups
  5. kept-new-versions 10 ;; Anzahl der Versionen, die zu behalten sind
  6. kept-old-versions 0 ;; Anzahl der ältesten Versionen, die zu behalten sind
  7. delete-old-versions t ;; Nicht nachfragen, ob alte Versionen gelöscht werden sollen
  8. backup-by-copying t ;; Kopiere die Dateien, benenn sie nicht um
  9. vc-make-backup-files t) ;; Mach backups von versionskontrollierten Dateien
  10. (defvar PATH_BACKUP_BASE (expand-file-name "~/.emacs.d/backup/"))
  11. ;; N.B. backtrick and comma allow evaluation of expression when forming list
  12. (setq backup-directory-alist
  13. `(("" . ,(expand-file-name "per-save" PATH_BACKUP_BASE))))
  14. ;; Erstell Backup bei jedem Speichern
  15. ;; Dateien werden in den Unterordnern "per-session" einmalig je Emacs-Session und
  16. ;; in "per-save" bei jedem Speichern gebackupt
  17. (defun backup-every-save ()
  18. (when (not buffer-backed-up) ;; erstell ein per-session-backup beim ersten Speichern
  19. (let ((backup-directory-alist ;; überschreib die default Parameter für per-sesssion-Backups
  20. `(("." . ,(expand-file-name "per-session" PATH_BACKUP_BASE))))
  21. (kept-new-versions 3))))
  22. (let ((buffer-backed-up nil))) ;; Erstell per-save-Backup bei jedem Speichern.
  23. ;; Erstes Speichern ergibt ebenfalls ein per-session-Backup
  24. )
  25. (add-hook 'before-save-hook 'backup-every-save) ;;save hook hinzufügen
  26. (provide 'base-backup)