是否有Emacs变量来关闭具有特定扩展名的文件备份?

时间:2009-01-27 03:32:31

标签: emacs backup elisp

例如,在编辑各种数据文件时,备份数据没有用,实际上是我们的工具。所以我希望能够禁用名称中包含正则表达式的文件的备份。

justinhj

3 个答案:

答案 0 :(得分:9)

我讨厌简单地引用其他在线资源来解决这些问题,但这似乎非常适合您的需求。

http://anirudhs.chaosnet.org/blog/2005.01.21.html

一旦您设置了该页面上描述的内容,您就可以将其添加到.emacs.emacs.d/init.el文件中,具体取决于您的emacs版本:

(setq auto-mode-alist (append '(("\\.ext1$" . sensitive-mode)) auto-mode-alist))
(setq auto-mode-alist (append '(("\\.ext2$" . sensitive-mode)) auto-mode-alist))
(setq auto-mode-alist (append '(("\\.ext3$" . sensitive-mode)) auto-mode-alist))
(setq auto-mode-alist (append '(("\\.ext4$" . sensitive-mode)) auto-mode-alist))

其中\\.ext1$\\.ext2$等是与您不希望备份的文件名匹配的正则表达式。

答案 1 :(得分:3)

您可以随时要求emacs将备份/自动保存文件放在您的主目录中。

http://amitp.blogspot.com/2007/03/emacs-move-autosave-and-backup-files.html

(defvar user-temporary-file-directory
  (concat temporary-file-directory user-login-name "/"))
(make-directory user-temporary-file-directory t)
(setq backup-by-copying t)
(setq backup-directory-alist
      `(("." . ,user-temporary-file-directory)
        (,tramp-file-name-regexp nil)))
(setq auto-save-list-file-prefix
      (concat user-temporary-file-directory ".auto-saves-"))
(setq auto-save-file-name-transforms
      `((".*" ,user-temporary-file-directory t)))

答案 2 :(得分:3)

如果您想使用内置的Emacs功能,请执行以下操作:

(defvar my-backup-ignore-regexps (list "foo.*" "\\.bar$")
  "*List of filename regexps to not backup")

(defun my-backup-enable-p (name)
  "Filter certain file backups"
  (when (normal-backup-enable-predicate name)
    (let ((backup t))
      (mapc (lambda (re)
              (setq backup (and backup (not (string-match re name)))))
            my-backup-ignore-regexps)
      backup)))

(setq backup-enable-predicate 'my-backup-enable-p)