2014-04-01 102 views

回答

3

看那normal-backup-enable-predicate功能,是backup-enable-predicate变量的默认值。

由于默认功能的唯一目的是禁止备份各种临时目录中的文件,因此您可能只需要设置无条件返回t的替换。

(setq backup-enable-predicate (lambda (name) t)) 

files.el中的用法向我建议您也可以将此变量设置为nil。这在文档中没有说明,所以它可能不可靠,但该变量没有被Emacs中的任何其他库引用,所以它的可能罚款(但我仍然建议使用lambda,因为它更明显是什么这是做)。

参见C-H我克(elisp) Making BackupsRET

N.B.我实际上并不熟悉small-temporary-file-directory(请参阅该变量的文档字符串),但temporary-file-directory值通常为/tmp/,所以这两种情况通常是相同的。

如果你确实想保留默认的行为一些临时目录,但不是别人,你应该定义原函数的修改后的副本:(defun my-backup-enable-predicate ...),然后(setq backup-enable-predicate 'my-backup-enable-predicate)

+0

我认为我们在这里有一个赢家。 Emacs手册实际上提到了'backup-enable-predicate' - 我不知何故错过了。 :(谢谢! –

+0

如果临时文件目录中的文件在我退出emacsclient后立即删除了怎么办?在查杀缓冲区之前如何制作文件的副本? –

+0

回答我自己的问题 - 似乎我需要“Cu Cu Cx Cs“http://www.gnu.org/software/emacs/manual/html_node/emacs/Backup.html –

0

棒这揭掉.emacs文件:

;; create an invisible backup directory so our directories 
;; look a bit cleaner 
;; thanks to #emacs in irc.freenode.org, Ryan Barrett of snarfed.org 
;; and freethegnu.wordpress.com 
(defun make-backup-file-name (filename) 
(defvar backups-dir "/tmp/") 
(make-directory backups-dir t) 
(expand-file-name 
(concat backups-dir (file-name-nondirectory filename) "~") 
(file-name-directory filename))) 
+0

如果备份保存到主目录将是很好就像“〜/ .backup”一样,即使在/ tmp中编辑也是如此(例如/tmp/tmp.1234)。 –

+0

Lester Cheung:那会是'(setq backup-directory-alist'((“。”。“〜/ .backup”)))''但是请通读各种答案[如何控制Emacs如何制作备份文件?](http://stackoverflow.com/questions/151945/how-do-i-control-how-emacs-makes-backup-files),因为这不太可能是您想要配置的唯一选项。 – phils

+0

感谢@phils是的,这就是我目前使用的。 –

相关问题