如何在自动保存上调用after-save-hook?

时间:2014-10-01 17:41:53

标签: emacs save elisp hook autosave

我已经定义了一个后保存挂钩,如果我按Ctrl-x Ctrl-s保存它会很有用。但是,我已经注意到,除了任何其他方式触发保存之外没有按预期跳出钩子。首先我注意到称为save-some-buffers的代码没有触发它,所以我这样做了:

(defadvice save-some-buffers (after after-save-some-buffers activate)
  (run-hooks 'after-save-hook))

即使文件没有改变,它几乎可以正常工作,所以它仍然不理想。但后来我注意到autosaving也没有触发它。所以我查阅了文档并找到了do-auto-save函数并尝试了相同的技巧:

(defadvice do-auto-save (after after-auto-save activate)
  (run-hooks 'after-save-hook))

钩子根本没有执行。 do-auto-save是一个C源函数,所以大概它不会调用任何通常会触发钩子的elisp。

简而言之,每当emacs保存我的修改后的缓冲区后,保存后保存挂钩实际运行时,我该怎么做?

1 个答案:

答案 0 :(得分:0)

after-save-hook在执行save-some-buffers时运行。如果没有,那将是非常奇怪的。你能从emacs -Q创建一个repro吗?