Vim and vi
Ah yes, Vim and vi! They sound like some ancient mystic potion that ensures long life and wisdom. Alas though, they are not.
The command-line text editor vi was first written in 1976 and became part of the first release of BSD Unix in 1978. Even though it is command line driven and with no Graphical User Interface (GUI) or menu, a 2009 survey conducted by Linux Journal found that vi was the most popular editor, beating even gedit, the GUI GNOME editor, into second place. I am not averse to the GUI, but I find a GUI editor to be restrictive and slow. I can honestly say that the majority of, if not all, tasks can be performed by me more quickly in vi.
That being said, in CentOS, you will not find vi; vi is purely a default alias that is provided for convenience, and links to the vim
command. We can view this on my CentOS 6.5 console using the following command:
$ alias | grep vi
The output of the command should look similar to the following screenshot:
Vim is a contraction of Vi IMproved and was first publicly released in 1991 and authored by Bram Moolenaar, initially targeted at the Amiga system. It has been common in the Linux platform since the early 2000s. As the name suggests, it is based on vi and is improved; on CentOS, it is distributed with the vim-enhanced
package. These improvements are most commonly useful with the syntax-highlighting feature available for languages such as PERL, Python, and PHP. Another such improvement is that it can work traditionally on the command line or with a GUI frontend. To install the graphical interface for Vim, you will need to add the vim-X11
package as follows:
# yum install -y vim-X11
Tip
One limitation, of course, is that you will require the X11 server to be running. In an enterprise, the server will often run without a GUI and you can connect using secure shell to a command-line shell only.
If you are new to vi, then using the graphical version can be helpful, as the menus also display the command-line shortcuts. To edit a file with vi or Vim on the command line, we can simply use a command similar to the following:
$ vi <filename-to-edit>
It is possible to use the graphical version of an editor when you are working on the CentOS desktop as follows:
$ gvim <filename-to-edit>
or
$ vimx -g <filename-to-edit>
I would recommend using the gvim
command, as it doesn't require the additional option and causes less confusion. Starting vimx
without the -g
option just starts the normal Vim program.