[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Sheflug] Vi



On 22-Jul-05 Dean Sas wrote:
> Could someone tell me what VI stands for, or means? It's a command I've
> typed many times and only just realised I don't know why it's called 
> what it is. I know VIM is Vi Improved, but clueless to the original
> meaning.
> 
> Could someone enlighten me?
> 
> dsas

This is an archaeological reply, in that the origins of Unix,
like the origins of the human race, lie in pre-history.
(Nevertheless, both thrive vigorously today, a tribute to
the soundness of constitution. More recently evolved forms
may well be too fragile to survive the challenge of competency
in real life).

Once upon a time, the means of communicating with a computer
(unless you were one of the engineers with access privileges
to the wiring) was via a teletype. This was like a typewriter
on a pedestal, with a push-button keyboard and a roll of paper.

Any character you typed was sent to the computer, and echoed
back to the roll of paper, so you had limited visual feedback.
If you mis-typed, you could "delete" using the "erase" key.
The effect of this was that your core/e/rectons/s/n/o/ions
could also be seen, in that deleted characters were echoed
back to the roll of paper between "/../" as above.

Also, you couldn't scroll back up: any line, once sent, was
sent. You could maybe erase the previous line too, in a similar
way, but then you had to re-type the whole thing.

Basically, the "feedback by printing to paper" of teletypes
meant that, in the words of Omar Khayyam, "The moving finger
writes and, having write, moves on ... ". You can't replace
any character printed on paper with a different one which was
what you meant in the first place.

All this encouraged not only accurate typing, but also giving
commands etc. compact names, so as to minimise exposure to
opportunities to mis-type.

The early days of the development of Unix (late 60s to 1970;
Unix was officially born at 00:00 on 1 Jan 1970) took place
in this environment, and the developers took this urge for
compactness to the limit.

Hence "rm" for "remove" to delete files, "ls" for "list status",
"cat" for "[con]catenate", "tar" for "tape archive", "at" for
timed commands, "cron" for scheduled "chronological" tasks, etc.

There was also, in the teletype age, the editor program "ed".
Have a look at "man ed" to see how it worked. With the above
description in mind, you can see how it was adapted for use
with teletypes (basically, you could open a file, get 'ed'
to print out a line on the roll of paper, and use the line
editing commands in 'ed' to make changes to the line and, when
satisfied with the line, write it back to the file); and you
can imagine what it was like for the people who had to do it!

An outgrowth of 'ed' was the "string editor" or 'sed', which
you could use to get the computer itself to edit lines in a
file which matched a pattern according to an editing instruction
embedded in the command line.

The programs 'ed' and 'sed' were the workhorses of people
programming Unix by means of teletypes. But you can imagine 
that your visual feedback about what you were doing, and
especially about where you were in the file, was extremely
limited.

Then suddenly, one day, a technological quantum leap burst on
the world: The terminal console with a CRT display and keyboard
arrived!

Now at last there was an interface which could display a whole
screenful of text, with a cursor which could be moved around
on it, and characters displayed as patterns of green electrons
which could be wiped off and replaced with something different.

This immediately led the Unix developers to extend 'ed' and
'sed' to take advantage of the new mobility and editability.
The resulting editing program was designed to allow you to move
around on the visual display and make changes, insertions,
deletions, etc. wherever the cursor happened to be. All at once,
the visual feedback about what you were doing, and especially
about where you were in the file, was enormously better.

This program was called "vi".

"vi" stands for "visual [editor]".

End of story.

(Not making any of this up. Was there, saw it happening.)

Best wishes to all,
Ted.


--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding [at] nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 23-Jul-05                                       Time: 12:55:19
------------------------------ XFMail ------------------------------
___________________________________________________________________

Sheffield Linux User's Group -
http://www.sheflug.co.uk/mailfaq.html

  GNU the choice of a complete generation.