Vi

vi is a Unix/Linux text editor used for creating and modifying a range of different types of files. Use of vi can be cumbersome at first and requires knowledge of at least 15 or so special commands in order to be useful.

At linux prompt type "vimtutor" (without the quotes) to start a built in tutorial

Insert Mode vs. Normal Mode

Insert Mode

In insert mode, you can type and delete text just as you would in a word processor. When you are done, press the <Esc> key to go back into normal mode.

Normal Mode

Navigating the file:

<Arrow keys> move up, down, left, right
0 move to the beginning of a line
$ move to the end of a line
1G move to the first line of the file
10G move to the 10th line of the file
G move to the last line of the file
<ctrl+u> move up 1/2 a page
<ctrl+d> move down 1/2 a page

Search for text:

/ After pressing the '/'key, a prompt will show up on the bottom left of the screen. Type in the text you want to match and press 'Return'.
Press the 'n' key to go to the next matched result (press the 'N' key to cycle through the results in reverse)

Find and replace text:

:%s/old/new/g will search through the file and replace every instance of 'old' with 'new', without 'g' this will only replace the first instance of each 'old' per line, add 'c' to confirm each individual change

Delete, copy and paste text:

x delete a character
dl delete a letter
dw delete a word
dd delete a line
5dd delete 5 lines
yy copy a line of text
3yy copy 3 lines of text
p paste the last text you copied of deleted

Saving and quitting

:w save the file
:wq save the file and quit
:q quit vi mode
:q! quit without saving the changes you made to the file