我已經定義了一個保存後鉤子,如果通過按Ctrl-x Ctrl-s進行保存,它會很好用。不過,我注意到,保存觸發幾乎沒有任何其他方式不按預期跳閘。首先,我注意到代碼調用保存,一些緩衝器沒有觸發,所以我這樣做:如何在自動保存上調用保存後鉤子?
(defadvice save-some-buffers (after after-save-some-buffers activate)
(run-hooks 'after-save-hook))
而且除了它幾乎工作將運行掛鉤,即使該文件並沒有改變,所以它仍然不理想。但後來我注意到autosaving也沒有觸發它。所以,我諮詢了文檔,發現DO-自動保存功能,並嘗試了同樣的伎倆:
(defadvice do-auto-save (after after-auto-save activate)
(run-hooks 'after-save-hook))
而且有鉤完全不執行。 do-auto-save是一個C源代碼函數,所以推測它不會調用任何elisp通常會觸發的鉤子。
總之,當emacs保存我修改後的緩衝區後,save-hook實際運行時我該如何做到這一點?
您能否告訴我們爲什麼您需要在自動保存後運行代碼?對你的問題的直接回答可能不存在,所以提供關於你想要做什麼的額外信息是有用的。 – Stefan 2014-10-01 19:33:15