How to Save a File in Vi / Vim Editor in Linux

It is true that learning Vi/Vim – a well-known text editor in the Linux ecosystem, is not as easy as learning Nano or Emacs, as it requires a little effort which is worthwhile.

Many people are afraid of learning it, but seriously, for no important reasons. In this short article, intended for Vi/Vim text editor newbies, we’ll learn a few basic commands; how to save a file after writing or modifying its content.

Suggested Read: 10 Reasons Why You Should Use Vi/Vim Text Editor in Linux

In most of the today’s Linux distributions, Vi/Vim editor comes with pre-installed, if not install the full version of Vim (Debian systems provide vim-tiny with less features), simply run this command:

$ sudo apt install vim          #Debian/Ubuntu systems
$ sudo yum install vim          #RHEL/CentOS systems 
$ sudo dnf install vim		#Fedora 22+

Note: To use it’s latest features, install Vim 8.0.

To open or create a file using Vim, run the following command, then press i to insert text into it (insert mode):

$ vim file.txt
$ vi file.txt
Press 'i' to Insert Mode in Vim Editor

Press ‘i’ to Insert Mode in Vim Editor

Once you have modified a file, press [Esc] shift to the command mode and press :w and hit [Enter] as shown below.

Save File in Vim

Save File in Vim

To save the file and exit at the same time, you can use the ESC and :x key and hit [Enter]. Optionally, press [Esc] and type Shift + Z Z to save and exit the file.

Save and Exit File in Vim

Save and Exit File in Vim

To save the file content to a new file named newname, use :w newname or :x newname and hit [Enter].

From here, you can now move over to learn common Vi/Vim tips and tricks, understand the different modes and so much more:

  1. Learn Useful ‘Vi/Vim’ Editor Tips and Tricks to Enhance Your Skills
  2. 8 Interesting ‘Vi/Vim’ Editor Tips and Tricks for Every Linux Administrator

That’s it! In an upcoming article, we’ll show you how to exit Vim text editor with simple commands. Remember to drop your comments via the feedback form below.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Aaron Kili

Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide
The Complete Linux System Administrator Bundle
Become an Ethical Hacker Bonus Bundle

You may also like...

19 Responses

  1. Aarony says:

    Thanks a lot.

    This article really helped me.

  2. Srikanth says:

    Thanks It worked for me, now i am able to pull and push the code with out giving any password. Since i have configured my updated password in the HTTPS url of my Repository.

    Ex: Https://UserNmae:Pwd/repositoryName

    Step1 – > Open Git Bash – > git config -e – > Type this command — > go to edit mode by clicking on Insert Key — > Update your password — > and at the end of the file give :x and click on enter and Control +Z to exit by saving.

    Thank you for the support

  3. Enock Khondowe says:

    Thank you so much Mr Aaron really helpful, hoping one day can also do something to help others.

  4. mahdi says:

    Thank you so much i can change my IP in the command line in mt Issabel Voip and i can save changes successfully!

  5. Denilson says:

    Thank you my friend! It worked just fine :)

  6. pakar seo says:

    I searching way to find this tutorial and works like charms

    Thanks mate…:)

  7. Jonix Jonixsson says:

    When pressing the :w you can after the enter the path (absolute or relative) where you want the file to be stored

    Absolute path has a leading slash /etc/passwd
    Relative path don’t have the leading slash .././etc/passwd

  8. Jonix Jonixsson says:

    Also, when pressing the ESC-key to get out of insertion mode to command mode, just press ESC-key _once_ otherwise you will get an audible reminder (beep) that you were not aware of where you are/were (insertion-mode/command-mode)

  9. Jonix Jonixsson says:

    When saving the file with :x, beware that you DONT press when pressing the x, so you will avoid using uppercase X when saving; the uppercase X save, will save the file encrypted, the key string entered after the X will be the encryption key..

  10. bowo says:

    I’m using :wq for exit and save, but there are :x more shorter. Well, I guess must read the manual again.

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.