Open In App

How to undo in Vim editor in Linux

Last Updated : 25 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Vim (short for Vi Improvised) is a popular text editor mainly used in Linux and Unix-based operating systems but due to having a CLI (command line interface), it might be difficult for new users to make use of basic features such as undo in Vim. So in this article, we will learn different ways and types to undo changes in Vim Editor in Linux.

Like all other modern text editors, Vim also has the functionality UNDO which enables the users to revert the changes done in the document. It saves the changes as revisions or entries in the memory so that when asked, it can revert the current revision to the previous revision.( basically undoing changes).

Vim has also a criterion of what is to be considered an entry or revision. Any of the following can be considered an entry:

  • Pressing i to move into insert mode.
  • Writing 4 new lines in insert mode.
  • Editing 4 different lines in insert mode.

How to Undo in Vim Editor?

Vim not only offers basic undo function, but also of various types with different affects. We can undo changes in three different ways:

  1. Undo Most Recent Change
  2. Undo Multiple Changes
  3. Undo All Changes in a Single Line

Lets look at each of them one by one.

1. Undo Most Recent Change

In this method, we undo the last change we did on the document. In other words, we revert to the most recent revision of the document.

Command

u  or  :u  or  :undo

To do this, follow the given steps:

  1. Press Esc – To exit the insert mode and come to the normal mode.
  2. Enter u, :u or :undo – To enter undo the latest change.

before-undo

Before Undo

  • You can see the most recently done changes are reverted.

after-undo

After Undo

2. Undo Multiple Changes

We can also undo multiple changes in a single command.

Command

Nu  or  :undo N 

where N is the number of changes you want to undo.

Follow the given steps to do undo multiple changes in one go:

  1. Press Esc – To exit the insert mode and come to the normal mode.
  2. Enter 3u or :undo 3 – To undo the last 3 changes.

before-undo-number

Before Undo

  • As you can see, the current revision is reverted to the third most recent revision.

after-undo-number

After Undo

3. Undo All Changes in a Single Line

This method allows the user to undo all the changes in a Single Line.

Command

U

Follow the given steps to undo all the changes in a Single Line:

  1. Press Esc – To exit the insert mode and come to the normal mode.
  2. Enter U – To undo all the changes in the given line.
before-undo-single-line

Before Undo

  • As we can see, all the changes in the single line are reverted.

Listing All Undo Branches

After undo, we do some more changes and overwrite the last done changes with current changes. Generally, there is no way to access those removed changes but in Vim, these changes are not completely deleted but instead, their entries get branched into different undo branches. We can view and access these branches using the following command:

:undolist

Example

undolist

Undolist

Conclusion

Undo is one of the basic operations in any text editor, and Vim has a powerful version of it that offers more capabilities as compared to other editors. This article discusses the different undo types in Vim, which can help you improve your productivity.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads