保存前挂钩和写入文件函数之间的区别是什么



我在http://www.gnu.org/software/emacs/manual/html_node/elisp/Saving-Buffers.html#Saving-缓冲区,但仍然不太明白两者之间的区别。在我看来,它们都像一个钩子一样工作,在将缓冲区保存到访问的文件之前运行您设置的任何函数。有人能举例说明吗?谢谢

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

如果您不希望修改保存文件的机制,我强烈怀疑您应该使用before-save-hook

另请参见C-hig(elisp) Saving BuffersRET

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

我想说before-save-hook是来修改内容的。而write-*-functions负责编码系统(例如压缩文件内容或遵循任何其他文件格式)和备份文件。

此外,CCD_ 10可以是缓冲区本地的,而CCD_。但我不确定它意味着什么。

最新更新