Как в Emacs проверить все открытые файлы на наличие изменений?

Работаю с> 1 Emacs (на> 1 машине) и хочу проверить все открытые буферы на наличие изменений (они открываются удаленно через tramp / ssh), когда я возобновляю работу с конкретным Emacs.

В разных Emacs могут быть открыты не одни и те же файлы, но, вероятно, существует пересечение.

Не использую режим рабочего стола или что-то подобное (пока).

Спасибо!


person Chris Burgess    schedule 06.05.2011    source источник
comment
Я знаю, что при сохранении любого буфера мне будет предложено, если он был изменен удаленно, но тогда мне нужно найти правильное решение. Поскольку я сохраню и ухожу, идеальное решение для меня - заново открыть все открытые файлы.   -  person Chris Burgess    schedule 06.05.2011
comment
Я подозреваю, что ваш вариант использования достаточно уникален, поэтому решения по умолчанию не существует. Возможно, вы захотите изучить средства, с помощью которых идентифицируются несохраненные буферы при запуске list-buffers. Оттуда вы можете создать общий ресурс / файл, который можно будет просматривать из любого сеанса / экземпляра.   -  person sbaker    schedule 06.05.2011


Ответы (2)


Если вы хотите, чтобы буферы возвращались в Emacs, когда связанные файлы были изменены другой программой, вам следует посмотреть
Ch f global-auto-revert-mode RET

person phils    schedule 06.05.2011

Если я правильно понимаю, вы хотите вернуть любые буферы к их содержимому файла, если файл был изменен вне emacs.

Вот небольшой фрагмент Lisp, который будет перебирать неизмененные буферы и перезагружать содержимое с диска:

(require 'cl)
(loop for buffer being the buffers
      do (when
             (and (not (buffer-modified-p buffer)) (buffer-file-name buffer))
           (switch-to-buffer buffer)
           (revert-buffer nil t)))
person ataylor    schedule 06.05.2011