Features of Vi and Vim Explained with Differences
Vi is the first visual text editor. Before the creation of visual text editors, line editors were in use. A line editor can edit only a single line at a time. You have to tell it to go to a particular line and describe what change you want to make, such as adding or deleting text.
Instead of giving a complete overview of the text file, it shows only the line you are working with. With the advent of video terminals, visual editing became possible. Vi was the first in this lineup. It facilitated editing on a video terminal featuring a moving cursor. It was the first editor to operate in a mode where the entire text file was visible, allowing users to navigate seamlessly between lines. It derives its name from the word visual. The first version of vi was written in 1976 by Bill Joy.
In the text editors' historical context, vi was a significant achievement that prepared a base for several modern visual text editors. One such modern text editor is vim. Vim is purely based on vi. Vim stands for Vi-Improved, the user-friendly version of vi. Vim is written by Bram Moolenaar. It is a substantial improvement over traditional vi. Since vi is complex and lacks certain features, most Linux distributions do not include it. Despite this, they include vim and symbolically link (or alias) it to the name vi.
Vi or Vim
Run the vi command without any argument and option to know which version (traditional or improved) of vi the system has.
$vi
If the output of this command displays a bunch of tildes (~) marking empty lines and a line of status at the bottom of the screen, the system has the traditional version of vi. The following image shows the output of this command when the system has the conventional version of vi.

If the improved version of vi is installed and linked with the traditional vi command, the output of this command will display information about it. The following image shows the output of this command when the improved version of vi is present.

To quit from the output, press Esc + [:q!] and hit the Enter key.

Running the vim command is another way to know whether vim is available. If the command runs successfully, vim is present. If not, it returns the command not found error message. The following image shows the output of the vim command when vim is available.

The following image shows the output of the vim command when vim is not present.

Installing vim editor
The following command installs it.
$sudo apt install vim

Comparing Vi and Vim
As far as functionality is concerned, both editors work similarly. Which editor you choose is a matter of personal choice. If you are learning from scratch, learn vim instead of vi. Because of the additional features, vim is much easier than vi. Since vim is the updated version of vi, when you learn vim, you will also automatically learn vi.
Differences between Vi and Vim editors
Vim adds the following features and functions to the existing vi functionality.
- It includes more features for the programming languages, such as syntax highlighting, code folding, text formatting, etc.
- It includes an inbuilt utility for comparing files.
- It includes the undo/redo facility.
- It supports external scripting languages.
- It can edit compressed files.
- It can edit remote files using the network protocol.
- It supports plugins for additional functionality.
- It supports screen splitting for editing multiple files simultaneously.
When to learn vi or vim
Vi and vim are complex editors. These editors are challenging to learn and use. You might wonder why you should know these when so many easy-to-use and featured-rich text editors are available.
If you are a user who primarily works on the graphical environment and creates or edits text files that only contain user data, or if you are a user who asks someone else to repair the system, you do not need to learn these editors.
However, if you are a user who mainly works on the command line, manages the Linux file system, or accesses a Linux system remotely, or if you are a person who is called upon to repair the system, you must learn these editors.
In other words, if you are a typical desktop user, learning these complex editors is unnecessary. Knowing these editors is essential if you are a system administrator or edit text files remotely.
Vim (vi) - an editor of administrators
Administrators learn it mainly for the following reasons.
- It is a universal editor on Linux. No matter which Linux distribution or version of the distribution you use, it contains this. Therefore, if you know how to use it, you can edit text files on any Linux system.
- It is the only available editor in many situations, such as emergency mode and a remote session. If you do not know how to use it, it would be challenging to edit configuration files in such a circumstance.
- It is the lightest and fastest editor. It has a small footprint on RAM and CPU. It is easier to use than load and use a heavy graphical text editor for many tasks.
- It includes a command for all essential text manipulation operations, such as copy, paste, delete, find, search, etc. A skilled vi administrator never has to lift fingers from the keyboard while editing.
- It has built-in macros for edquota (a command that limits available disk space for users on your server), visudo (a command that sets permissions for the sudo command), and crontab -e (a command that schedules a task to run at a given moment in time) commands.
This tutorial is part of the tutorial series 'vi Editor in Linux'. Other parts of this series are the following.
Chapter 1 Features of Vi and Vim Explained with Differences
Chapter 2 Vi and Vim Modes Explained Through Examples
Chapter 3 Vi and Vim Text Editors Commands Explained
Conclusion
Vi is a universal text editor. It is available on all versions and modes of Linux. If you know how to use it, you can edit text files on any Linux system locally or remotely. Vim is the updated version of it. It enhanced many existing features and included several additional properties to simplify text editing.
By ComputerNetworkingNotes Updated on 2026-06-09