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

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