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

37,074

Solution 1

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

Solution 2

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!

Solution 3

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.

Share:
37,074

Related videos on Youtube

Dave
Author by

Dave

By Day: Owner/Operator of Lumiera, a creative technology studio By Night: Build light sculptures and make music

Updated on September 30, 2021

Comments

  • Dave
    Dave over 2 years

    I have a non-emacs global search and replace function that causes my disk files to become more up-to-date than my emacs buffers (en masse). Is there any way to tell emacs to refresh all the buffers from disk in one fell swoop, instead of having to do each one individually by reloading the file?

    Thanks! D

  • Dave
    Dave almost 15 years
    This looks good in cases where I always want to stay synched, thank you! I think I'll end up using revbuffs so that I can manage conflicts myself ( otherwise sometimes I might lose unsaved changes, the way my workflow currently works. )
  • Natan Yellin
    Natan Yellin about 13 years
    Thank you! I'm using a combination of revbuffs and auto-revert-mode. auto-revert-mode works great when I want to overwrite changes.
  • Lindydancer
    Lindydancer over 12 years
    @Dave: (global-)auto-reverse-mode will not revert a file if the corresponding buffer is modified, so there should be no risk of you losing unsaved changes.
  • Justin Leitgeb
    Justin Leitgeb over 10 years
    Works nicely when switching branches with git. Thanks!
  • Khoa Vo
    Khoa Vo over 2 years
    Did you mean (setq auto-revert-use-notify nil), since it's a variable?