我正在成功地使用下面的代码来使emacs保存每个文件的许多版本。但我不知道您在emacs中实际使用了哪些命令将这些文件加载到缓冲区中。
我期待着某种历史查看者的命令!我什么也找不到。
(setq backup-directory-alist '(("." . "~/auto-saves")))
(setq version-control t
kept-old-versions 2 kept-new-versions 200
delete-old-versions t backup-by-copying t)发布于 2016-08-23 17:21:47
您可以打开保存它们的目录中的文件(~/autosaves)。但是后援步行器包要好得多。
更新:我强烈建议使用no-littering包来保持~/.emacs.d (和$HOME)的清洁。下面是我的备份配置(假设您已经设置了use-package和melpa ):
(use-package no-littering)
(setq make-backup-files t
vc-make-backup-files t
version-control t
kept-new-versions 128
kept-old-versions 0
delete-old-versions t
backup-by-copying t)
(defun force-backup-of-buffer ()
(setq buffer-backed-up nil))
(add-hook 'before-save-hook #'force-backup-of-buffer)
(use-package backup-walker)
(let ((dir (no-littering-expand-var-file-name "auto-save/")))
(make-directory dir t)
(add-to-list 'auto-save-file-name-transforms `(".*" ,dir t) 'append))如果不想使用no-littering,请设置backup-directory-alist、tramp-persistency-file-name、tramp-backup-directory-alist和tramp-auto-save-directory。
(setq emacs-persistence-directory
(expand-file-name "var" user-emacs-directory))
(let ((dir (expand-file-name "backup" emacs-persistence-directory)))
(unless (file-directory-p dir)
(make-directory dir t))
(setq backup-directory-alist `(("." . ,dir))))
(let ((backup-dir (concat emacs-persistence-directory "tramp-backup/")))
(setq tramp-persistency-file-name (concat emacs-persistence-directory
"tramp")
tramp-backup-directory-alist `(("." . ,backup-dir))
tramp-auto-save-directory (concat emacs-persistence-directory
"tramp-auto-save/"))
(dolist (d (list tramp-auto-save-directory backup-dir))
(unless (file-exists-p d)
(make-directory d t))))附带注意:自动保存是一个不同于备份的特性。备份在第一次保存缓冲区(C-x C-s)时保存副本。上面,我有一个函数force-backup-of-buffer在before-save-hook上备份每次保存。每次进行一定数量的编辑时,Autosave都保存一个副本。对于给定的文件,可以有许多备份,但只有一个自动保存。
发布于 2016-09-06 22:50:28
我把jpkotta的答案作为选择的答案,因为后援步行者似乎适合其他人。对于我的OSX盒,我无法获得备份模式的工作,备份步行器更专注于差异,而不仅仅是提供对备份文件的访问。
这是我被黑的解决方案--有点恶心,但对我来说很管用。您需要编辑环境的路径名。(原始版本见https://www.emacswiki.org/emacs/ForceBackups ),我尝试过备份模式和备份目录https://www.emacswiki.org/emacs/BackupDirectory,但这是第一件起作用的事情。)
它是这样做的:-它修复了emacs,所以它总是自动保存(令人惊讶的是,这不是默认的)-它添加了命令M历史‘’来打开备份目录。
很粗糙,但很管用。看到Emacs死了真难过!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; FORCE-BACKUP-OF-BUFFER
;;; (See https://www.emacswiki.org/emacs/ForceBackups)
(defun dao-setup-force-backup-of-buffer()
(setq vc-make-backup-files t) ; Do backups even for version controlled files!
(setq version-control t ; Use version numbers for backups.
kept-new-versions 10 ; Number of newest versions to keep.
kept-old-versions 0 ; Number of oldest versions to keep.
delete-old-versions t ; Don't ask to delete excess backup versions.
backup-by-copying t) ; Copy all files, don't rename them.
(add-hook 'before-save-hook 'force-backup-of-buffer)
)
(defun force-backup-of-buffer ()
;; Make a special "per session" backup at the first save of each
;; emacs session.
(when (not buffer-backed-up)
;; Override the default parameters for per-session backups.
'(let ((backup-directory-alist '(("." . "~/emacs-backups")))
(kept-new-versions 3))
(backup-buffer)))
(backup-buffer)
;; Make a "per save" backup on each save. The first save results in
;; both a per-session and a per-save backup, to keep the numbering
;; of per-save backups consistent.
(let ((buffer-backed-up nil))
(backup-buffer)))
(defun history ()
(interactive)
(dired-find-file "/User/oblinger/emacs-backups")
)https://stackoverflow.com/questions/39091433
复制相似问题