アドバイスを追加するときに、elisp関数のボディの特定の式とどのように一致させますか?具体的には、次の例では、find-file
の代わりにfind-file-noselect
を使用するように、つまり、 行(find-file path)
は、(find-file-noselect path)
になります。アドバイスを使用してelisp関数の本体の式を変更する
(defun tst-fun (path line column)
(find-file path)
(goto-char (point-min))
(forward-line (1- line))
(forward-char column))
;; not sure how to structure this
(defadvice tst-fun (around noselect activate)
(find-file-noselect (ad-get-arg 0))
ad-do-it)
私はむしろad-add-function
としてそれを持っているだろうが、ただ、これは最初の作業を取得しようとしています。
アドバイスは、アドバイスされた機能の前、後、または代わりに実行されますが、元の機能自体の動作を変更しません。 – Barmar
@Barmarだから、 'ad-do-it'を'(cdr ad-do-it) 'に設定するなどの方法はありませんか? – jenesaisquoi
これは 'tst-fun'を呼び出し、それが返すものの' cdr'を返します。 – Barmar