我已经定义了一个后保存挂钩,如果我按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保存我的修改后的缓冲区后,保存后保存挂钩实际运行时,我该怎么做?
答案 0 :(得分:0)
after-save-hook
在执行save-some-buffers
时运行。如果没有,那将是非常奇怪的。你能从emacs -Q
创建一个repro吗?