1
Emacs let-bound advice
コード内の関数を一時的にオーバーライドしたいと思います。 たとえば、次のことを考えてください。 (defun nadvice/load-quiet (args) (cl-destructuring-bind (file &optional noerror nomessage nosuffix must-suffix) args (list file noerror t nosuffix must-suffix))) (defun nadvice/idle-require-quiet (old-fun &rest args) (advice-add 'load :filter-args #'nadvice/load-quiet) (apply old-fun args) (advice-remove #'load #'nadvice/load-quiet)) (advice-add 'idle-require-load-next :around #'nadvice/idle-require-quiet) 動作しないもの: この。アドバイスを手動で有効または無効にすることを避け、Emacsのシングルスレッドの性質を信頼して物事を処理できれば、ずっときれいになります。 cl-letf元の関数を参照させないため、:filter-args通常行うことを実装できません。 cl-flet 他の関数の関数をオーバーライドすることはできません。 noflet避けたい外部パッケージです。(また、私が必要とする以上のことをします)