gpt4 book ai didi

function - 覆盖 Emacs 库中的单个函数

转载 作者:行者123 更新时间:2023-12-04 14:41:16 27 4
gpt4 key购买 nike

我使用 Emacs 模式来注释我的一些文件(实际模式并不重要)。它以库的形式提供,并带有编译好的 lisp 代码(当然)。我想通过覆盖其中的单个函数来修改其行为。仅用于我本地的 Emacs session 。现在,我只是从库的源文件中复制粘贴该函数,稍微修改一下,然后点击 eval-last-sexp .到现在为止还挺好。但是,我得到了不一致的结果:我不确定 Emacs 如何处理来自 .elc 的函数。文件与来自源的函数混合。有时我会看到自己运行的函数版本,有时是原始版本。非常困惑(和烦人)。

任何想法如何在不修改库的只读源文件的情况下一致地替换 Emacs 库中的 lisp 函数?

最佳答案

像这样的事情应该可以解决问题:

(advice-add 'name-of-func-to-override :override
(lambda () (message "does this instead now")))

替换 name-of-func-to-override带有函数名和 lambda用你的版本。

我建议看 add-function (和 advice-add)文档为 :override实际上可能不是您想要的。

关于function - 覆盖 Emacs 库中的单个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38511253/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com