VIcmds.com Logo

Please consider helping us maintain
this site by making a donation:

Donate

A Reference for the VI Editor

Visit our new Blog!
Click here for Tips and Tricks!
Follow us on Twitter!
Welcome to VICmds.com! This is a reference for VI commands. VI is one of the most powerful and popular text editors for Linux and Unix yet is also one of the most complicated. However, with this site and a little bit of practice, you can master the art of VI.

Click here for the master cheat sheet.

About VI

VI was written in C by Bill Joy, one of the co-founders of Sun Microsystems. Joy is also known for his work with NFS, csh, and BSD Unix. Originally written in 1976, Joy wrote it because of frustrations with existing editors like ed. Admittedly, a lot of the ideas used in VI came from editors like ed and Bravo. The name VI comes from "visual". VI is a mode-based, or modal, editor. This stems from the fact that there are two modes in which VI operates: insert mode and normal mode. Insert mode allows you to type into the document. As I am writing this, my VI is in the insert mode. Normal mode allows your keystrokes to act as commands that control VI. As I am writing this, I am periodically going into normal mode in order to save the document, after which I go back into insert mode to continue writing.

One of the most powerful features of VI is the user's ability to quickly navigate around a document. Those users that need to make smaller changes in various places throughout a document (such as a config file), will come to greatly appreciate this. An interesting point to note is that Joy used a Lear Siegler ADM3A terminal when writing VI. On this terminal, the h, j, k, and l keys also served as arrow keys (in normal mode) to allow for basic navigation through a document. That is why VI uses them in this way as well.

CursorBasic cursor movements
ScrollingBasic screen scrolling
Line numbersDisplaying/Navigating Line Numbers
InsertBasic inserting
Delete/MoveBasic deleting and moving
Exit commandsVarious commands to exit and save
LinesBasic line navigation
SearchesPerforming searches
Marking positionMarking positions
ChangeMaking changes
Yank (copy)Basic use of yank
ex edit commandsUse of ex edit commands
Other commandsOther additional commands