Я определил послезахват, и он отлично работает, если я сохраню, нажав Ctrl-x Ctrl-s. Тем не менее, я заметил, что сохранение практически не срабатывает, как и ожидалось. Сначала я заметил, что код под названием копи-некоторые-буферы не вызывали, так что я сделал это:Как сделать вызов после сохранения при автосохранении?
(defadvice save-some-buffers (after after-save-some-buffers activate)
(run-hooks 'after-save-hook))
И что почти работал, кроме него будет работать крючок, даже если файл не изменился, так что все еще не был идеальным. Но потом я заметил, что автосохранение тоже не вызвало его. Таким образом, я консультировался документацию и нашел функцию сделай автосохранения и попробовал тот же трюк:
(defadvice do-auto-save (after after-auto-save activate)
(run-hooks 'after-save-hook))
И крючок не выполняется вообще. do-auto-save - это функция источника C, поэтому, по-видимому, она не вызывает все elisp, которое обычно запускает hook.
Вкратце, как это сделать, когда emacs сохраняет измененные буферы, которые действительно выполняются после сохранения?
Не могли бы вы дать нам подсказку, почему вам нужно запускать код после автоматического сохранения? Прямой ответ на ваш вопрос может не существовать, поэтому полезно предоставить дополнительную информацию о том, что вы пытаетесь сделать. – Stefan