Emacs 保存钩子之前的函数和写入文件之前的函数有什么区别

Emacs 保存钩子之前的函数和写入文件之前的函数有什么区别,emacs,elisp,Emacs,Elisp,我在读了手册,但仍然不太明白两者之间的区别。在我看来,它们都像一个钩子,在将缓冲区保存到访问的文件之前运行您设置的任何函数。有人能举例说明吗?谢谢。我想说的是,在保存hook之前,是用来修改内容的。而write-*-函数负责编码系统(例如压缩文件内容或遵循任何其他文件格式)和备份文件 此外,write-*-functions可能是缓冲区本地的,而save hook之前的似乎不是这种情况。但是我不知道这意味着什么。我想说的是,save hook之前的是用来修改内容的。而write-*-函数负责编码

我在读了手册,但仍然不太明白两者之间的区别。在我看来,它们都像一个钩子,在将缓冲区保存到访问的文件之前运行您设置的任何函数。有人能举例说明吗?谢谢。

我想说的是,在保存hook之前,
是用来修改内容的。而
write-*-函数
负责编码系统(例如压缩文件内容或遵循任何其他文件格式)和备份文件


此外,
write-*-functions
可能是缓冲区本地的,而save hook
之前的
似乎不是这种情况。但是我不知道这意味着什么。

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


此外,
write-*-functions
可能是缓冲区本地的,而save hook
之前的
似乎不是这种情况。但是我不知道它意味着什么。

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

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


另请参见C-hig
(elisp)保存缓冲区
RET

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

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


另见C-hig
(elisp)保存缓冲区
RET

write-*-函数
提供了一个严格的超集,说明了save hook
之前
可以做什么。更具体地说,
write-*-函数
可以用另一个函数替换正常的保存机制。这意味着添加到
write-*-函数
的函数可能会因为某些错误而无法使用lier函数已经保存了缓冲区。

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

所以它们基本上是可交换的?我想说不。你的目标是什么?你的解释似乎表明它们是在不同的场景中常规使用的,而不是机械上的差异。我用它来删除后面的空白
来删除不必要的空白,但我只是对它们的一般功能感兴趣,所以它们基本上是可交换的?我想说不。你的目标是什么?你的解释似乎表明它们通常用于不同的场景,而不是机械上的差异。我用它来删除后面的空白
来删除不必要的空白,但我我只是对它们的一般功能感兴趣