--- layout: page author: Alessandro Luini category-page: advanced category-title: Advanced commands tags: Vi advanced text editor title: Vi ---

The default editor that comes with the UNIX operating system is called vi (visual editor).



The UNIX vi editor is a full screen editor and has two modes of operation:



  1. Command mode commands which cause action to be taken on the file, and
  2. Insert mode in which entered text is inserted into the file.


In the command mode, every character typed is a command that does something to the text file being edited; a character typed in the command mode may even cause the vi editor to enter the insert mode. In the insert mode, every character typed is added to the text in the file; pressing the {Esc} (Escape) key turns off the Insert mode.

While there are a number of vi commands, just a handful of these is usually sufficient for beginning vi users. To assist such users, this Web page contains a sampling of basic vi commands. The most basic and useful commands are marked with an asterisk (* or star) in the tables below. With practice, these commands should become automatic.

Both UNIX and vi are case-sensitive. Be sure not to use a capital letter in place of a lowercase letter; the results will not be what you expect.



How to start vi

To use vi on a file, type in vi filename. If the file named filename exists, then the first page (or screen) of the file will be displayed; if the file does not exist, then an empty file and screen are created into which you may enter text.

vi filename.txt

To edit filename starting at line 1



How to exit vi

Usually the new or modified file is saved when you leave vi. However, it is also possible to quit vi without saving the file.

The cursor moves to bottom of screen whenever a colon (:) is typed. This type of command is completed by hitting the <Return> (or <Enter>) key.

:q<Return>

quit (or exit). vi

:x<Return>

quit vi, writing out modified file to file named in original invocationt modified file to file named in original

:wq<Return>

quit vi, writing out modified file to file named in original invocation.

:q!<Return>

quit vi even though latest changes have not been saved for this vi call

Flags

-r:

Use -r to recover filename that was being edited when system crashed.

vi -r filename.txt