Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Vi (text editor)
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Distribution=== Joy was responsible for creating the first [[BSD Unix]] release in March, 1978, and included ex 1.1 (dated 1 February 1978)<ref name="v1.1-version">{{cite web |title=version.c, ex 1.1 source code |work=minnie.tuhs.org |url=https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/ex-1.1/Version.c}}</ref> in the distribution, thereby exposing his editor to an audience beyond [[University of California, Berkeley|UC Berkeley]].<ref name="1bsd-READ_ME">{{cite web |title=1BSD/READ_ME |format=roff source |url=https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/READ_ME}} Formatted: {{cite web |title=Berkeley UNIX Software Tape |url=http://www.skytel.co.cr/bsd/research/acrobat/780201.pdf |access-date=27 December 2010 |url-status=dead |archive-url=https://web.archive.org/web/20110718162521/http://www.skytel.co.cr/bsd/research/acrobat/780201.pdf |archive-date=18 July 2011}}</ref> From that release of [[Berkeley Software Distribution|BSD Unix]] onward, the only editors that came with the Unix system were ed and ex. In a 1984 interview, Joy attributed much of the success of vi to the fact that it was bundled for free, whereas other editors, such as [[Emacs]], could cost hundreds of dollars.<ref name="interview"/> Eventually it was observed that most ex users were spending all their time in visual mode,{{Citation needed|date=November 2008}} and thus in ex 2.0 (released as part of Second Berkeley Software Distribution in May, 1979), Joy created vi as a [[hard link]] to ex,<ref name="v2-makefile">{{cite web |title=makefile, ex 2.0 source code |work=minnie.tuhs.org |url=https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/ex/makefile}}</ref> such that when invoked as vi, ex would automatically start up in its visual mode. Thus, vi is not the evolution of ex, vi ''is'' ex. Joy described ex 2.0 (vi) as a very large program, barely able to fit in the memory of a [[PDP-11#Models|PDP-11/70]],<ref name="ex2.0-READ_ME">{{cite web |title=READ_ME |work=ex 2.0 source code |url=https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/ex/READ_ME}}</ref> thus although vi may be regarded as a small, lightweight program today, it was not seen that way early in its history. By version 3.1, shipped with 3BSD in December 1979, the full version of vi was no longer able to fit in the memory of a PDP-11;<ref name="ex3.1-READ_ME">{{cite web |title=ex 3.1 source code |url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=3bsd/usr/src/cmd/ex/READ_ME}}</ref> the editor would be also too big to run on [[PC/IX]] for the [[IBM PC]] in 1984.<ref name="iw19840402">{{cite news |title=A First Look at PC-IX |work=InfoWorld |date=1984-04-02 |author1=McMahon, Marilyn |author2=Putnam, Robert |pages=39–42 |url=https://books.google.com/books?id=kC4EAAAAMBAJ&pg=PA40 |access-date=25 February 2016}}</ref> Joy continued to be lead developer for vi until version 2.7 in June 1979,<ref name="ex-Acks-bsd4.4"/><ref name="vi-versions"/> and made occasional contributions to vi's development until at least version 3.5 in August 1980.<ref name="vi-versions">{{cite web |title=Change log for vi, versions 2.1–3.7 |work=minnie.tuhs.org |url=https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.1cBSD/usr/src/ucb/ex/ex.news}}</ref> In discussing the origins of vi and why he discontinued development, Joy said:<ref name="interview"/> <blockquote> I wish we hadn't used all the keys on the keyboard. I think one of the interesting things is that vi is really a [[mode (user interface)|mode]]-based editor. I think as mode-based editors go, it's pretty good. One of the good things about [[Emacs|EMACS]], though, is its programmability and the modelessness. Those are two ideas which never occurred to me. I also wasn't very good at optimizing code when I wrote vi. I think the redisplay module of the editor is almost intractable. It does a really good job for what it does, but when you're writing programs as you're learning... That's why I stopped working on it. What actually happened was that I was in the process of adding multiwindows to vi when we installed our [[VAX]], which would have been in December of '78. We didn't have any backups and the tape drive broke. I continued to work even without being able to do backups. And then the source code got scrunched and I didn't have a complete listing. I had almost rewritten all of the display code for windows, and that was when I gave up. After that, I went back to the previous version and just documented the code, finished the manual and closed it off. If that scrunch had not happened, vi would have multiple windows, and I might have put in some programmability—but I don't know. The fundamental problem with vi is that it doesn't have a mouse and therefore you've got all these commands. In some sense, it's backwards from the kind of thing you'd get from a mouse-oriented thing. I think multiple levels of undo would be wonderful, too. But fundamentally, vi is still ed inside. You can't really fool it. It's like one of those pinatas—things that have candy inside but has layer after layer of paper mache on top. It doesn't really have a unified concept. I think if I were going to go back—I wouldn't go back, but start over again. </blockquote> In 1979,<ref name="interview"/> [[Mary Ann Horton]] took on responsibility for vi. Horton added support for arrow and function keys, macros, and improved performance by replacing [[termcap]] with [[terminfo]].<ref name="ex-Acks-bsd4.4"/><ref name="vi-Acks-bsd4.4">{{cite manual |title=vi Reference Manual |series=4.4 BSD (encumbered, not Lite) |last=Joy |first=Bill |publisher=CSRG, UC Berkeley |format=roff source |url=https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/src/usr.bin/ex/USD.doc/vi/vi.in}} (see Acknowledgments section at end of file)</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Vi (text editor)
(section)
Add topic