在两个不同的场合,我用 emacs 覆盖了重要文件,直到后来才意识到。发生这种情况是因为各种命令(特别是org-agenda-write
and org-export
)将简单地替换现有文件,而不会警告该名称的文件已经存在。有没有办法配置emacs,这样就不会发生?
问问题
209 次
1 回答
1
org-agenda-write
用于write-file
保存您的议程。当从程序调用此函数时,将覆盖现有文件而无需确认。write-file
深埋在里面org-agenda-write
,直接修改它可能会在 Emacs 的其他地方引起令人惊讶的错误。但是,您可以包含org-agenda-write
一个环绕建议。这是添加检查文件是否存在并在覆盖之前提醒用户的一种巧妙方法。
(defadvice org-agenda-write (around my-file-check)
"Check if a file exists before writing the agenda to it."
(if (file-exists-p file)
(if (y-or-n-p (format "Overwrite %s?" file))
ad-do-it)
ad-do-it))
(ad-activate 'org-agenda-write)
这可能是 中的一个错误org-agenda-write
,如果您在 orgmode 邮件列表中很好地询问,他们可能会被说服将此检查作为默认行为。
文件的写入行为org-export
看起来比较复杂,可能需要借助外部程序来完成。不过,如果您愿意,您可能可以使用类似的包装器。
于 2013-01-03T02:53:16.730 回答