All About the VI Editor and VI Commands in Linux/Unix

Read this article to learn more about the VI Editor and VI Commands in Linux/Unix

What is the VI editor?

In the Linux family, the VI editor is the most popular and traditional text editor. The following are some of the reasons why it is such a popular editor on the Linux and Unix operating systems.

  1. It is available in almost all Linux Distributions

  2. It works the same across different platforms and Distributions

  3. It is user-friendly. Hence, millions of Linux users love it and use it for their editing needs

Nowadays, there are advanced versions of the vi editor available, and the most popular one is VIM which is Vi Improved. Some of the other ones are Elvis, Nvi, Nano, and Vile. It is wise to learn vi because it is feature-rich and offers endless possibilities to edit a file.

To work on the VI editor, you need to understand its operation modes. They can be divided into two main parts.

In this tutorial, you will learn more about VI Editor

  • vi Command mode
  • vi Editor Insert mode
  • How to use vi editor
  • vi Editing commands
  • Moving within a file
  • Saving and Closing the file

vi Command mode:

The VI Editor

The vi editor opens in this mode, and it only understands commands In this mode, you can move the cursor and cut, copy, and paste the text This mode also saves the changes you have made to the file Commands are case sensitive. You should use the right letter case.

vi Editor Insert mode:

This mode is for inserting text into the file.

You can switch to the Insert mode from the command mode by pressing ‘i’ on the keyboard Once you are in Insert mode, any key would be taken as an input for the file on which you are currently working. To return to the command mode and save the changes you have made you need to press the Esc key

Also Read: How to Clear Cache on Any Browser in Desktop and Mobile Phone

How to use vi editor

To launch the VI Editor -Open the Terminal (CLI) and type

vi filename

And if you specify an existing file, then the editor would open it for you to edit. Else, you can create a new file.

The VI Editor

VI Editing commands

i – Insert at cursor (goes into insert mode)
a – Write after cursor (goes into insert mode)
A – Write at the end of line (goes into insert mode)
ESC – Terminate insert mode
u – Undo last change
U – Undo all changes to the entire line
o – Open a new line (goes into insert mode)
dd – Delete line
3dd – Delete 3 lines.
D – Delete contents of line after the cursor
C – Delete contents of a line after the cursor and insert new text. Press ESC key to end insertion.
dw – Delete word4d
w – Delete 4 words
cw – Change word
x – Delete character at the cursor
r – Replace character
R – Overwrite characters from cursor onward
s – Substitute one character under cursor continue to insert
S – Substitute entire line and begin to insert at the beginning of the line
~ – Change case of individual character

Note: You should be in the “command mode” to execute these commands. VI editor is case-sensitive so make sure you type the commands in the right letter case.

Make sure you press the right command otherwise you will end up making undesirable changes to the file. You can also enter the insert mode by pressing a, A, o, as required.

Moving within a file

k – Move cursor up
j – Move cursor down
h – Move cursor left
l – Move cursor right

You need to be in the command mode to move within a file. The default keys for navigation are mentioned below else; You can also use the arrow keys on the keyboard.

Saving and Closing the file

Shift+zz – Save the file and quit
:w – Save the file but keep it open
:q – Quit without saving:wq – Save the file and quit

You should be in the command mode to exit the editor and save changes to the file.

The VI Editor


You should be able to work on your file quickly if you know the vi instructions; learning to use this editor can help you create scripts and edit files. The vi editor is usually available in all Linux distributions and is the most popular and commonly used Unix text editor. It works in two modes, Command and Insert Command mode takes the user commands, while the Insert mode is used for editing text.