Answers:
您可以通过定制位置backup-directory-alist
。列表中的每个条目都将与模式匹配的文件的备份放在何处;如果位置为nil
,则备份将与原始目录位于同一目录中。顺序很重要:使用第一个匹配项。
(setq backup-directory-alist '(("-autoloads\\.el\\'")
("." . "~/.emacs.d/backups")))
如果要基于文件名或位置完全禁止备份,则似乎没有内置的机制,但是添加起来很容易。该变量backup-enable-predicate
包含确定文件是否应具有备份的函数的名称。默认设置normal-backup-enable-predicate
仅禁止Emacs用于临时文件的目录中的备份。您也可以添加自己的函数来检查文件名。
(defvar backup-inhibit-file-name-regexp "-autoloads\\.el\\'"
"Files whose full path matches this regular expression will not be backed up.")
(defun regexp-backup-enable-predicate (filename)
"Disable backups for files whose name matches `backup-inhibit-file-name-regexp'.
Also call `normal-backup-enable-predicate'."
(save-match-data
(and (not (string-match backup-inhibit-file-name-regexp filename))
(normal-backup-enable-predicate filename))))
(setq backup-enable-predicate 'regexp-backup-enable-predicate)
即使此函数返回t
,其他机制也可以禁用备份。
如果要在特定的主要模式下禁用备份,make-backup-files
请nil
在主要模式的设置挂钩中设置为(可能基于文件名和其他特征)。不要忘记将变量设置为局部缓冲区。
禁用某些文件备份的另一种方法是设置backup-inhibited
。该变量在主要模式更改后仍然存在。VC就是通过版本控制(通过中的条目file-find-hook
)禁用文件备份的方式。不要忘记将变量设置为局部缓冲区。