Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to have Emacs auto-refresh all buffers when files have changed on disk?

(global-auto-revert-mode t) in your .emacs.


Here is an alternative if you are using Emacs GUI (Mine is GNU Emacs 25.1.1 on Windows 7):

  1. Click "Options" in menubar
  2. Select "Customize Emacs"
  3. Select "Saved Options"
  4. Then you should see a search field where you enter "global-auto-revert-mode" and press "Search" button
  5. Click "Toggle" button and make sure it reads "on" to the right of the button
  6. Press "Apply and Save" button right below the search field

If you already have a few files opened, you should see this taken effect instantly. Good luck!


Thanks to @Ashwin for pointing out (global-auto-revert-mode t). I found that Emacs won't automatically update buffers whose files have changed on disk with this change alone. From https://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html:

By default, Auto-Revert mode works using file notifications, whereby changes in the filesystem are reported to Emacs by the OS. You can disable use of file notifications by customizing the variable auto-revert-use-notify to a nil value, then Emacs will check for file changes by polling every five seconds. You can change the polling interval through the variable auto-revert-interval.

After I set (setq auto-revert-use-notify nil), Emacs did indeed refresh all buffers every 5 seconds.