Me estaba divirtiendo agregando algunos consejos a una función:
(advice-add 'executable-find :around
(lambda (f &rest args)
(apply g args)))
;;; ^
Ay, un error tipográfico. Lo arregló y evaluó el código anterior nuevamente. Pero ahora tengo ambos, el consejo "corregido" y el "roto" en torno a esa función.
¿Cómo me deshago de estos? Dado que advice-removenecesita el objeto de función o el consejo (¿qué está vacío aquí?)
(Obviamente, puedo salir y reiniciar, pero hay otra forma, ¿no?)

eqa las anteriores, (2) advice-remove compararía la función que la pasas a los consejos hasta que encuentre uno que eseqpara eliminarlo, (3) incluso si el consejo de eliminación utiliza una prueba diferente, comoequal, todavía no funcionaría, porque las diferentes evaluaciones de una forma lambda no se aplicaríanequalentre sí. Resulta que (1) es correcto, pero (2) y (3) están equivocados: aconsejar eliminar los usosequaly evaluarloslambdados veces produceequalresultados.Hay
advice-mapc, que vamos a iterar sobre todos los consejos de alguna función, aplicando una función dada a cada uno. Con él, es fácil eliminar todos los consejos:Esto podría extenderse para eliminar solo los avisos que no tienen una
namepropiedad buscando en el segundopropsargumento () (que es una lista) para aquellos que no tienen algo asociado a la clavename.fuente
namehace que la eliminación sea más fácil.Aquí hay un código para ayudar a hacer precisamente eso, de forma interactiva.
Esto define dos funciones. La primera función obtiene la lista de todos los consejos sobre un símbolo dado, la segunda función solicita interactivamente un símbolo y un consejo sobre ese símbolo, luego elimina el último del primero. Como todo esto sucede con la finalización, es más fácil (para mí) que copiar pegar la expresión lambda.
fuente