Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim loses undo history when changing buffers

Tags:

vim

If I'm working in a file, change to another buffer, and then change back, I have lost my undo history.

  1. vim File1.txt - make a bunch of changes & save.
  2. Open new buffer - :e test.txt
  3. Switch back to File1.txt - :b#
  4. Undo history is gone.

Any workarounds for this?

like image 890
Brian Avatar asked Apr 28 '10 18:04

Brian


2 Answers

You could :set hidden. This means that the buffer of the old file will only be hidden when you switch to the new file. When you switch back, you still have your undo history.

like image 99
Rüdiger Hanke Avatar answered Oct 12 '22 10:10

Rüdiger Hanke


You can also add persistent undo, this will have vim store your undo even through restart:

" Persistent undo
set undofile
set undodir=$HOME/.vim/undo

set undolevels=1000
set undoreload=10000

Edit - via @sanbor:

Don't forget to do mkdir ~/.vim/undo, otherwise vim won't do it for you.

like image 45
Aaron Jensen Avatar answered Oct 12 '22 08:10

Aaron Jensen