---
layout: page
author: Alessandro Luini
category-page: advanced
category-title: Advanced commands
tags: advanced text editor hell quit help escape sos
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:
- Command mode commands which cause action to be taken on the file
- 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
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
Quit vi without saving
:x
Quit vi, writing out modified file to
file named in original invocationt modified file to file named in origin.
:wq
Quit vi, writing out modified file to file named in original invocation.
:q!
Quit vi even though latest changes have not been saved for this vi call.
Recover from a crash
Open vi using the -r
flag to recover a file that was being edited when a crash
happened.