Vi / Vim: Wipe and Undo All Changes Since Opening a File

I am a new vi / vim text editor user and I know how to quit without saving changes. What if I want to wipe out all of the edits I have made in a session and get back to the original file? How do I wipe all changes since opening a file?

Tutorial details
Difficulty Easy (rss)
Root privileges No
Requirements vi/vim
Time N/A
To undo and wipe all changes since opening file in vim or vi text editor.

1) If you are currently in insert or append mode, press Esc key.

2) Type : (colon). You will see the cursor at the lower left corner of the screen.

3) Type the following command:




The above command returns you to the last saved version of the file i.e. edit the current file always. Discard any changes to the current buffer. This is useful if you want to start all over again. Type the following command for more information.

:help edit!

Check out related media

This tutorial is also available in a quick video format:

Video 01: VI / VIM: Wipe All Changes To The Buffer / File

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 3 comments so far... add one

CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
3 comments… add one
  • w0m Apr 29, 2013 @ 4:59

    I use this daily. Though to be safe; I do a diff of current buffer and file saved on disk before reverting.
    0 set diffopt+=iwhite
    1 function! DiffOrig()
    2 if &diff
    3 wincmd p | bdel | diffoff
    4 else
    5 vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
    6 endif
    7 endfunction
    8 map do :call DiffOrig()

  • Deepak Apr 29, 2013 @ 10:58

    easiest way is, type escape and then “u” to undo the changes one by one.

  • Sergey Apr 4, 2016 @ 16:06

    Deepak, good solution!

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Problem posting comment? Email me @