If you have made extensive changes to a file and then change your mind
about them, you can get rid of them by reading in the previous version
of the file with the
revert-buffer command. See Reverting a Buffer in The GNU Emacs Manual.
revert-buffer&optional ignore-auto noconfirm preserve-modes
This command replaces the buffer text with the text of the visited file on disk. This action undoes all changes since the file was visited or saved.
By default, if the latest auto-save file is more recent than the visited
file, and the argument ignore-auto is
revert-buffer asks the user whether to use that auto-save
instead. When you invoke this command interactively, ignore-auto
is t if there is no numeric prefix argument; thus, the
interactive default is not to check the auto-save file.
revert-buffer asks for confirmation before it changes
the buffer; but if the argument noconfirm is non-
revert-buffer does not ask for confirmation.
Normally, this command reinitializes the buffer’s major and minor modes
normal-mode. But if preserve-modes is
nil, the modes remain unchanged.
Reverting tries to preserve marker positions in the buffer by using the
replacement feature of
insert-file-contents. If the buffer
contents and the file contents are identical before the revert
operation, reverting preserves all the markers. If they are not
identical, reverting does change the buffer; in that case, it preserves
the markers in the unchanged text (if any) at the beginning and end of
the buffer. Preserving any additional markers would be problematical.
revert-buffer binds this variable to a non-
while it is working.
You can customize how
revert-buffer does its work by setting
the variables described in the rest of this section.
This variable holds a list of files that should be reverted without
query. The value is a list of regular expressions. If the visited file
name matches one of these regular expressions, and the file has changed
on disk but the buffer is not modified, then
reverts the file without asking the user for confirmation.
Some major modes customize
revert-buffer by making
buffer-local bindings for these variables:
The value of this variable is the function to use to revert this
buffer. It should be a function with two optional
arguments to do the work of reverting. The two optional arguments,
ignore-auto and noconfirm, are the arguments that
Modes such as Dired mode, in which the text being edited does not consist of a file’s contents but can be regenerated in some other fashion, can give this variable a buffer-local value that is a special function to regenerate the contents.
The value of this variable specifies the function to use to insert the updated contents when reverting this buffer. The function receives two arguments: first the file name to use; second, t if the user has asked to read the auto-save file.
The reason for a mode to change this variable instead of
revert-buffer-function is to avoid duplicating or replacing the
rest of what
revert-buffer does: asking for confirmation,
clearing the undo list, deciding the proper major mode, and running the
hooks listed below.
This normal hook is run by the default revert-buffer-function before inserting the modified contents. A custom revert-buffer-function may or may not run this hook.
This normal hook is run by the default revert-buffer-function after inserting the modified contents. A custom revert-buffer-function may or may not run this hook.
The value of this variable specifies a function to call to check whether a buffer needs reverting. The default value only handles buffers that are visiting files, by checking their modification time. Buffers that are not visiting files require a custom function (see (emacs)Supporting additional buffers).