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):
- Click "Options" in menubar
- Select "Customize Emacs"
- Select "Saved Options"
- Then you should see a search field where you enter "global-auto-revert-mode" and press "Search" button
- Click "Toggle" button and make sure it reads "on" to the right of the button
- 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.