Ответ 1
@iainH Вы, как правило, быстрее получаете полезный ответ, описывая, какую цель вы пытаетесь выполнить, то, что у вас есть до сих пор. Я попросил код попробуйте помочь вам сделать то, что вы хотите сделать, не перезаписывая что-либо.
Я все еще не понимаю, почему вы не просто используете defun
хотя? Я подозреваю
что может произойти, вы используете defun
в вашем файле инициализации, но оригинал
функция еще не загружена (см. autoload). Через некоторое время вы
что-то, чтобы файл с исходным определением был загружен, и ваш
пользовательская функция перезаписывается оригиналом.
Если это проблема, у вас есть три варианта (скажем, вы хотите
переписать telnet-initial-filter
с "telnet.el" ):
-
Загрузите файл самостоятельно, прежде чем определять свою собственную версию.
(require 'telnet) (defun telnet-initial-filter (proc string) ...)
-
Direct Emacs загружает вашу функцию только после загрузки файла с помощью eval-after-load.
(eval-after-load "telnet" '(defun telnet-initial-filter (proc string) ...))
-
Используйте советы.
Из них лучше всего 2. 1 тоже хорошо, но вы должны загрузить файл, который вы можете
никогда не использовать в сеансе. 3 - худшее. Все, что связано с defadvice
следует оставить в качестве последнего варианта.