0

我在http://www.gnu.org/software/emacs/manual/html_node/elisp/Saving-Buffers.html#Saving-Buffers阅读了手册,但仍然不太明白两者之间的区别。在我看来,它们都作为一个挂钩来运行您在将缓冲区保存到访问文件之前设置的任何功能。任何人都可以用例子来解释吗?谢谢。

4

3 回答 3

2

write-file-functions 用于在保存文件之前简单地做任意事情,但其声明的目的是允许一些非默认函数实际完成保存文件的工作(或者可能为了与保存更直接相关的目的而操纵内容机制本身)。

如果修改保存文件的机制不是您想要做的,我强烈怀疑您应该使用before-save-hook.

也可以看看C-hig (elisp) Saving Buffers RET

于 2013-02-17T01:47:17.283 回答
1

write-*-functions提供一个严格的超集before-save-hook可以做什么。更具体地说,write-*-functions可以用另一种替代正常的储蓄机制。这意味着添加到的函数write-*-functions可能最终未被使用,因为一些较早的函数已经保存了缓冲区。

于 2013-02-17T15:01:04.830 回答
0

好吧,我会说before-save-hook是在这里修改内容。同时write-*-functions负责编码系统(例如压缩文件内容或遵循任何其他文件格式)和备份文件。

此外write-*-functions,可能是本地缓冲区,而before-save-hook. 但后来我不确定它意味着什么。

于 2013-02-16T19:24:35.687 回答