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

是否有一个Emacs变量用于关闭具有特定扩展名的文件备份?,emacs,backup,elisp,Emacs,Backup,Elisp,例如,在编辑各种数据文件时,备份数据毫无用处,实际上会使我们的工具失灵。因此,我希望能够禁用名称中包含regexp的文件的备份 justinhj我不喜欢简单地参考其他在线资源来回答这些问题,但这似乎非常适合您的需要 设置完该页面上的描述后,您可以将其添加到.emacs或.emacs.d/init.el文件中,具体取决于您的emacs版本: (setq auto-mode-alist (append '(("\\.ext1$" . sensitive-mode)) auto-mode-alist

例如,在编辑各种数据文件时,备份数据毫无用处,实际上会使我们的工具失灵。因此,我希望能够禁用名称中包含regexp的文件的备份


justinhj

我不喜欢简单地参考其他在线资源来回答这些问题,但这似乎非常适合您的需要

设置完该页面上的描述后,您可以将其添加到
.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$
等是与您不希望备份的文件名相匹配的正则表达式。

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


如果要使用内置的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)

但是,当然,当您这样设置时,您会失去自动模式列表的常规功能。我只想(添加hook'some mode hook#'sensitive-mode)到您不需要备份的模式。谢谢Sean,这很好。jrockway:我不确定我失去的东西会有什么影响。我猜你的意思是敏感模式成为这些文件的唯一模式?例如,我不能在c或html模式下打开.obj文件?@justinhj根据回答中的博客帖子,
敏感模式
被定义为次要模式,因此允许您在适当的主要模式下打开c或html文件,而不会产生冲突。
(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)