Vim redo and undo

Dayne Dayne (57)
Total time: 5 minutes 

Learn how to undo and redo changes using vim. If you are brand new to vim, learn more about the basics in this intro to vim guide.

TL;DR

Command Description
u undo
ctrl-r redo

And for undo branches

Command Description
g- move back 1 chronological changes
g+ move forward 1 chronological changes
:earlier <num> move back <num> chronological changes
:later <num> move forward <num> chronological changes

Posted in these interests:

vim
PRIMARY
23 guides

Vim keeps track of an "undo stack", a linear history of all the changes you've made. Adding something in insert mode adds 1 item to the undo stack. Using u or ctrl-r traverses up and down the stack until you being inserting something else.

In command mode, press u to undo the most recent change. Easy!

To redo the most recently undone command, press ctrl-r.

Advanced users will find undo branches useful. Vim actually keeps track of every change you've ever made. Vim uses a tree structure that can be navigated using g- and g+ or :earlier and later. Further reading in this guide on vim undo branches.

Calling all writers!

We're hiring. Write for Howchoo

Dayne's profile pictureDayne
Joined in 2015
Software engineer, co-founder of Howchoo, and renaissance man. Lifelong amateur woodworker, espresso mechanic, freestyle lyricist, drummer, artist, runner, coffee roaster, electrical engineer, gamer, inventor, churner, psychoanalyst, photographer, pizza chef, pit master, audiophile, guitarist, entrepreneur, dad, yogi, cyclist, and barista.
Share this guide!
Related to this guide:
Vim undo branches
You probably already know how to use vim's basic undo and redo features. For a quick refresher, read this short tutorial on how to use vim redo and undo.
Dayne's profile picture DayneView
In these interests: vim
3 Ways to Use Tabs in Vim
Vim tabs can be a great way to visualize which files you currently have open. Many vim users get bogged down by them and either end up working too hard to use them or give up altogether.
Dayne's profile picture DayneView
In these interests: vim
Vim Text Objects: Using Vim Text Objects
Once you learn to think in text objects, you'll never be the same
Dayne's profile picture DayneView
In these interests: vim
People also read:
Vim is a powerful tool. I often paste raw data into Vim in order to format it in a specific way, and sometimes I need to clean up the file by removing many blank lines.
One of the strengths of Vim is that it's highly customizable. And while remapping keys is possible, we often want to create shortcuts without changing the default key bindings.
If you find yourself highlighting text in Vim with your mouse to copy and paste it elsewhere, stop. There's a better way, using the yank command, to copy text into your clipboard on macOS or Windows.
Basic vim commands
Because you've accidentally opened Vim and don't know how to exit
Vim is amazing. Well, Python is doing all the work, but I still like Vim. Learn how to format JSON in Vim like a pro with this short guide! tl;dr Paste your json, and run this in vim normal mode. :%!
Tabs are evil. This guide will show you how to convert tabs to spaces in Vim.
Need to change the case of characters to all caps or all lowercase? This is easily done using Vim. This guide will show you how to change the case of characters in Vim.
Trailing whitespace can be a real pain - especially when diffing changes between two versions of a file.
Vundle, Pathogen, Vim-plug, VAM, and the others can be great time savers but sometimes you just have to do something yourself so you can understand what exactly the time saving software is doing for you in the background. For myself, I got sick of not understanding what these were doing to my system. I realized I did not know the fundamentals of vim plugins so I set out to learn. This is a step by step guide to teach you how to install a basic vim plugin without the help of any fancy manager.
Posted in these interests:
vim
vim
PRIMARY
Discuss this guide: