Bir parça koddaki bir işlevi geçici olarak geçersiz kılmak istiyorum.
Örneğin, aşağıdakileri ele alalım:
(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)
Ne işe yaramaz:
- Bu. Tavsiyeyi manuel olarak etkinleştirmeyi ve devre dışı bırakmayı önleyebilir ve Emacs'ın işlere bakmak için tek iş parçacıklı doğasına güvenebilirsem çok daha temiz olurdu.
cl-letf
orijinal işleve başvurmama izin vermeyecek, bu yüzden:filter-args
normalde yapacak şeyleri uygulayamam .cl-flet
diğer işlevlerdeki işlevleri geçersiz kılamaz.noflet
kaçınmak istediğim harici bir paket. (Ayrıca ihtiyacımdan çok daha fazlasını yapar)
cl-letf*
her ikilet
s için de kullanmaktır .