3

Is there a way to remove unsaved text and get back the latest saved state of a file in Emacs without using undo?

Like this:

| a - write some text to save
| b - save the file
| c - add some text to remove
| d - more text  to remove
| e - command/function to remove all text after b
2
  • Do you mean for the sequence to be a-b-c-d-e instead of a-b-c-d-d? Jan 30, 2019 at 20:15
  • Yeah, exactly. I just edit it.
    – Asme Just
    Jan 30, 2019 at 21:17

1 Answer 1

12

Use M-x revert-buffer. A buffer only visits a file. The revert-buffer function reloads the current buffer's source file from disk. So long as the file hasn't changed since you last saved it, as might happen if another process writes to it, revert-buffer will restore the buffer to point b, removing all text inserted after b.

As a bonus, you don't need to type the whole thing. Typing M-x rev-b is sufficient.

7
  • Well maybe I was daydreaming but am sure I saw something like revert-buffer-region while assigning a key binding for revert-buffer- And I even read the description saying something like "undo selected region in a buffer". Now it just "disappeared".
    – Asme Just
    Jan 30, 2019 at 21:15
  • Sometimes that's an indication that the function you saw was from a package that isn't currently loaded. Jan 30, 2019 at 22:01
  • To quote the undo help: In Transient Mark mode when the mark is active, only undo changes within the current region. Similarly, when not in Transient Mark mode, just C-u as an argument limits undo to changes within the current region. Select a region of text and then do C-u C-/ to undo within the selection. Might that be what you read? Jan 30, 2019 at 22:10
  • Just checked - this is not part of the Emacs tutorial. Wonder if it should be. Jan 30, 2019 at 23:09
  • @LoremIpsum Well, I don't know anymore what I saw but it was part of the suggested function by company. It's funny cause I stopped, read what it does in a small description on the modeline, But it was "gone" when I came back lol. Never Mind, will probably find it again. :)
    – Asme Just
    Jan 30, 2019 at 23:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.