Перезагрузка буфера содержимого из копии на диске называется возвращением в Emacs, и вас может заинтересовать раздел «Возвращение» в руководстве.
Если вы делаете свою версиюуправление от Emacs, оно должно позаботиться о возврате при обновлении.
По умолчанию Emacs проверяет обновление файла, когда вы вносите первое изменение после сохранения.Я использую, когда я изменил файл извне.
(defun revert-files (&rest files)
"Reload all specified files from disk.
Only files that are currently visited in some buffer are reverted.
Do not ask confirmation unless the buffer is modified."
(save-excursion
(let ((revert-without-query '("")))
(dolist (file-name files)
(message "Considering whether to revert file %s" file-name)
(let ((buf (find-buffer-visiting file-name)))
(when buf
(message "Reverting file in buffer %s" (buffer-name buf))
(set-buffer buf)
(revert-buffer t nil t)))))))
Вот скрипт, который вызывает его из команды оболочки (он может быть вызван из скрипта-обертки для операций контроля версий).*
Предупреждение. Я удалил некоторые фрагменты кода, поскольку скопировал его, поэтому возможны опечатки.