Emacs将名为foo~的备份文件放在任何地方,我不喜欢记得删除它们。此外,如果我编辑的文件在文件系统的其他地方有一个硬链接,当我完成编辑时,硬链接指向备份,这是令人困惑和可怕的。我如何消除这些备份文件,或者将它们放到不同于相同目录的其他地方?
当前回答
公认的答案是 很好,但是通过额外备份可以大大提高 每次保存和备份版本文件。
首先,基本设置如所述所接受 答:
(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.
接下来,还要备份版本文件,Emacs默认情况下不这样做 (你不会承诺每次保存,对吧?)
(setq vc-make-backup-files t)
最后,每次保存都要备份,而不仅仅是第一次保存。我们有两个 备份类型:
每个会话备份:在每个会话的缓冲区的第一次保存时进行一次 Emacs会话。它们模拟Emac的默认备份行为。 每次保存备份:每次保存一次。Emacs不是通过 默认,但如果让Emacs长时间运行,它是非常有用的 时间。
备份是不同的 places和Emacs 如果备份dirs不存在,则自动创建备份dirs:
;; Default and per-save backups go here:
(setq backup-directory-alist '(("" . "~/.emacs.d/backup/per-save")))
(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.d/backup/per-session")))
(kept-new-versions 3))
(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)))
(add-hook 'before-save-hook 'force-backup-of-buffer)
在我写了$<而不是 $@在我的Makefile中,大约在我上次提交后3小时:P
以上是基于一个Emacs维基页面我重 编辑。
其他回答
如果你曾经被Emacs备份文件保存过,你 可能想要更多,而不是更少。这很烦人 它们和你正在编辑的文件在同一个目录下, 但这很容易改变。你可以启动所有备份文件 通过将以下内容放入目录 . emacs。
(setq backup-directory-alist `(("." . "~/.saves")))
有许多神秘的细节与Emacs如何 可能会创建你的备份文件。它应该重新命名原文吗 然后写出编辑过的缓冲区?如果原件是相连的呢? 一般来说,最安全但最慢的方法是始终进行备份 通过复制。
(setq backup-by-copying t)
如果因为某些原因你觉得太慢了你也可以看看 backup-by-copying-when-linked。
由于您的备份现在都在自己的位置,您可能需要 多一些,而不是少一些。看看Emacs 这些变量的文档(与C-h v)。
(setq delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t)
最后,如果你绝对没有备份文件:
(setq make-backup-files nil)
但我一想到这事就恶心。
配置备份选项的另一种方法是通过Customize接口。输入:
M-x customize-group
然后在Customize组:提示符处输入backup。
如果你滚动到缓冲区的底部,你会看到备份目录列表。单击“显示值”,设置列表的第一项如下所示。
Regexp matching filename: .*
Backup directory name: /path/to/your/backup/dir
或者,您可以关闭备份,我的设置使备份文件关闭。
如果您不希望Emacs自动编辑您的. Emacs文件,则需要设置一个自定义文件。
(setq delete-auto-save-files t)
当缓冲区的自动保存文件被保存或被杀死时,删除缓冲区的自动保存文件。因此,您仍然可以获得自动保存文件的一些安全性,因为只有当缓冲区被未保存的更改杀死或emacs意外退出时,才会保留这些文件。如果您想这样做,但确实需要某些文件的历史记录,可以考虑将它们置于源代码控制之下。
公认的答案是 很好,但是通过额外备份可以大大提高 每次保存和备份版本文件。
首先,基本设置如所述所接受 答:
(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.
接下来,还要备份版本文件,Emacs默认情况下不这样做 (你不会承诺每次保存,对吧?)
(setq vc-make-backup-files t)
最后,每次保存都要备份,而不仅仅是第一次保存。我们有两个 备份类型:
每个会话备份:在每个会话的缓冲区的第一次保存时进行一次 Emacs会话。它们模拟Emac的默认备份行为。 每次保存备份:每次保存一次。Emacs不是通过 默认,但如果让Emacs长时间运行,它是非常有用的 时间。
备份是不同的 places和Emacs 如果备份dirs不存在,则自动创建备份dirs:
;; Default and per-save backups go here:
(setq backup-directory-alist '(("" . "~/.emacs.d/backup/per-save")))
(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.d/backup/per-session")))
(kept-new-versions 3))
(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)))
(add-hook 'before-save-hook 'force-backup-of-buffer)
在我写了$<而不是 $@在我的Makefile中,大约在我上次提交后3小时:P
以上是基于一个Emacs维基页面我重 编辑。
您可以通过
(setq make-backup-files nil)