【问题标题】:what is difference between before-save-hook and write-file-functionsbefore-save-hook 和 write-file-functions 有什么区别
【发布时间】:2013-02-16 19:09:17
【问题描述】:

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

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

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

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

    另见 C-hig (elisp) Saving Buffers RET

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        此外,write-*-functions 可能是本地缓冲区,而before-save-hook 似乎并非如此。但是我不确定它意味着什么。

        【讨论】:

        • 所以它们基本上是可以交换的?
        • 我会说不。你的目标是什么?
        • 您的解释似乎表明它们通常用于不同的场景,而不是它们具有机械差异。我将它用于delete-trailing-whitespace 以删除不必要的空格,但我只是对它们的一般功能感兴趣
        猜你喜欢
        • 2011-11-11
        • 2014-05-18
        • 1970-01-01
        • 2014-02-20
        • 2017-08-08
        • 2021-04-25
        • 1970-01-01
        • 2011-08-23
        • 2014-03-07
        相关资源
        最近更新 更多