Измените выражение в теле функции elisp с советом

Как вы сопоставляете конкретное выражение в теле функции elisp при добавлении совета? В частности, в следующем примере я бы посоветовал использовать функцию find-file-noselect на месте find-fileт.е. линия (find-file path) будет в силе (find-file-noselect path),

(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, но я пытаюсь заставить это работать сначала.

1 ответ

Решение

Вы можете временно переопределить find-file как find-file-noselect в совет.

(require 'cl)
(defadvice tst-fun (around noselect activate)
  (flet ((find-file (&rest args)
           (apply 'find-file-noselect args)))
    ad-do-it))
Другие вопросы по тегам