関数の動作を一時的に変更するために使用するコードがいくつかfletあります。
;; prevent changing the window
(flet ((pop-to-buffer (buffer &rest args)
                      (switch-to-buffer buffer)))
   (compilation-next-error-function n reset))
ただし、Emacsのバイトコンパイラは警告を表示します。
In ag/next-error-function:
ag.el:103:7:Warning: `flet' is an obsolete macro (as of 24.3); use either
    `cl-flet' or `cl-letf'.
ただし、cl-flet動作が異なり、一部のユースケースに適さないため、これはそのようなケースの1つであると考えています。
私が見ることができるオプションは次のとおりです。
最善のアプローチは何ですか?
                
                3
              
                  「しかし、cl-fletの動作は異なります」。その警告メッセージには2番目の提案があります。;-)
                
                
                  
                    —
                     Malabarba 
                    
                  
                
              
                  古いものを取り、名前を変更して(例
                
                  
                    —
                    法律家14年
                    
                  
                
              my-flet:)、廃止された警告を削除し、以前にfletを必要としていたパッケージでそれを使用しました。