Why vi? Because it's available on all Unix and Linux systems and there will be times when you need to navigate and alter files and vi is available and accessible to you when nothing else is.
To enter the vi editor, use the vi command followed by the name of the file you want to edit. If the file doesn't exist, it will be created for you before you leave the editor. If it does exist, the current contents will be loaded into the edit buffer for you. When you enter the vi command and press enter, you'll be presented with a screen that shows the first lines of the current file contents.
Stop at this point. The keyboard in front of you has been transformed from a tool you use to enter whole commands, words and sentences into a function keypad. Each time you press a single key, an action will be taken. You're in vi's command mode. Make sure your caps lock key is OFF. Let's try some commands.
j will move the cursor down 1 line
k will move the cursor up one line
h will move the cursor left one character
l will move the cursor right one character
If you type in a number before you press the letter key, then instead of moving one character, you'll move by the number you entered. Thus 20j will move you down 20 lines. You'll probably find that the direction keys on your keyboard also work in vi, but that doesn't always happen, so learn the letters. Hint: the four letters are in a line on the keyboard, the h that moves left is on the left and the l that moves right is on the right.
You want to delete a character?
- Move the cursor over it and press "x".
- To delete six characters, enter "6x".
To insert characters:
- Move the cursor to the character before the one you want to insert
- press "i"...this will take you into insert mode
- type in your extra text; this can even include new line characters.
- press the "esc" key to return from insert mode to command mode
the "a" key also enters insert mode, but the text is added after the cursor
It's vital that you understand the difference between command mode and insert mode. In insert mode, typing "Graham" will add the word into the edit buffer. In command mode, you'll:
- Jump the cursor to the last line of the text
- Replace the first letter on that line with "a"
- Try to move the cursor one left, which will ring the bell ....
If you forget which mode you're in, press the esc key and you can then be sure that you're in command mode!
That's bare-minimum vi; there are two other commands you'll need to be able to complete any edit, albeit the most basic.
To delete a line, move the cursor onto it and enter "dd".
CAPITAL letter Z twice to save and exit from vi. To save your work and exit from vi, ensure that you're in command mode and enter "ZZ".
The most basic
a append (add after cursor)
dd delete current line
h move cursor left
i insert (add before cursor)
j move cursor down
k move cursor up
l move cursor right
x delete a character
ZZ save (if necessary) and quit
and one more:
:e![enter] oops, I made a right mess of that. Restart the edit!
Much more you can do - see the manual pages, the thousands of other resources out there on the net
See also Linux introduction
Please note that articles in this section of our
web site were current and correct to the best of our ability when published,
but by the nature of our business may go out of date quite quickly. The
quoting of a price, contract term or any other information in this area of
our website is NOT an offer to supply now on those terms - please check
back via our main web site
Web Application Deployment - Linux -An Introduction For Users 
Packing a tar, jar or war file - best practise - (2012-07-26) 
The Kernel, Shells and Daemons. Greek Gods in computing - (2012-07-01) 
Displaying a directory or file system tree - Linux - (2011-04-22) 
Oops - I typed ci not vi, and have lost my file ... - (2011-02-21) 
Recording (a macro) in vi - (2010-06-27) 
Linux - useful tips including history and file name completion - (2010-02-15) 
Making Linux Politically correct - (2009-11-06) 
Accidentally typed ci rather than vi? - (2009-10-27) 
What does x on a linux directory mean? - (2009-07-21) 
How much space does my directory take - Linux - (2009-07-20) 
Always use su with minus. And where do programs come from? - (2009-05-27) 
Running straight from the jar, but not from a tar - (2009-05-26) 
Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23) 
sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23) 
Keeping on an even keel - (2008-11-21) 
Some Linux and Unix tips - (2008-11-18) 
FTP passive mode - a sometimes cure for upload hangs - (2008-09-20) 
Yank and Push - copy and move in vi - (2008-08-21) 
ls command - favourite options - (2008-05-23) 
Selecting file names in a shell - one word or another - (2008-02-02) 
Copy and paste / cut and paste and other vi techniques - (2007-11-20) 
Wireless hotel tips - FTP and Skype connections failing - (2007-10-26) 
awk - a powerful data extraction and manipulation tool - (2007-09-25) 
Linux run states, shell special commands, and directory structures - (2007-08-03) 
Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02) 
Where am I and how did I get here? - (2007-07-05) 
ls -l report, Linux / Unix - types and permssions - (2007-02-06) 
Copy multiple files - confusing error message from cp - (2006-12-30) 
Moving files between Windows / DOS and Linux / Unix - (2006-12-30) 
Cardinal numbers and magic numbers - (2006-12-14) 
Cottage industry or production line data handling methods - (2006-06-07) 
THE home directory or MY home directory - (2006-05-06) 
Linux training Glasgow, Python programming course Dundee - (2006-05-05) 
Copying files and preserving ownership - (2006-04-28) 
More or less on the edge of the page - (2006-04-11) 
Web Application Components - (2006-03-28) 
Finding where the disc space has gone - (2006-02-06) 
File permissions of Linux and Unix systems - (2005-08-31) 
Linux commands - some basics - (2005-08-31) 
An easy way out - (2005-03-17) 
Aladdin, or careful what you wish. - (2004-12-15) 
pushd and popd - (2004-10-05) 
vi - full circle - (2004-10-04)resource index - Deployment
Solutions centre home page
You'll find shorter technical items at
The Horse's Mouth
delegate's questions answered at
At Well House Consultants, we provide
subjects such as Ruby, Lua, Perl, Python, Linux, C, C++,
Tcl/Tk, Tomcat, PHP and MySQL. We're asked (and answer)
many questions, and answers to those which are of general
interest are published in this area of our site.