The Birth of vi
lanc writes "Bill Joy, co-founder of Sun, tells the story of how he wrote the vi editor. The article at The Register delves into his motives, who instigated the project, and some of the quirks of leaving a 'gift to mankind'. From the piece: '9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think. Now that computers are so much faster than you can think, nobody understands this anymore. The people doing Emacs were sitting in labs at MIT with what were essentially fibre-channel links to the host, in contemporary terms. They were working on a PDP-10, which was a huge machine by comparison, with infinitely fast screens. So they could have funny commands with the screen shimmering and all that, and meanwhile, I'm sitting at home in sort of World War II surplus housing at Berkeley with a modem and a terminal that can just barely get the cursor off the bottom line.'"
> It was a world that is now extinct. People don't know that vi was written for a world that doesn't exist anymore
I use vi everyday but i've long stopped recommending it to most people i introduce to linux.
it really doesn't seem worth steep learning curve for most people.
Do you recommend vi to all new *nix users now?
The legacy of how vi was written is pretty much evident in the terse commands it uses - commands are short, to the point but an absolute bitch to figure out without some reference. However, the short commands are still useful in today's gigabit ethernet world with Gigahertz CPUs - the short commands are quicker to type and for plain text, I'm much faster with vi than any other text editor around.
I still use vim as my primary text editor, on Linux and Windows. It's just a neat little text editor; it does everything I want it to do and it does it efficiently. Plus I've been using it for years, so I'm comoftable with it. I see no reason to stop using it.
I may have switched to using things like Eclipse for editing specific types of text file (Java, PHP, HTML and XML) and using Visual Studio for coding (because nowdays I'm primarily working on Windows), but vim is still my utility text editor when I want to quickly modify or look at a text file.
I daresay a lot of people feel the same way about emacs; frankly they're entitled to.
Yeah, I had a sig once; I got bored of it.
Modal editors are a bad idea, but the thing is, most people don't actually want an editor. Most of the time, they want an electronic typewriter. Entering text and editing text are two conceptually separate tasks, and this is why vi works as an exception to the rule 'modal user interfaces are bad.' Vi is really two separate applications; one for entering text, and one for editing text. Because you often want to do these in quick succession, it allows you to quickly switch between them.
I am TheRaven on Soylent News
You mean libgpmg1. That's not related to GTK in any way (thank god).
Personally, I am happy with nvi(1), "a 'bug-for-bug compatible' clone of the original BSD vi". No strange dependencies there. But then I use emacs for all longer editing sessions.
When I was young and foolish I used notepad.
When I was forced to learn unix, I chose pico.
When I learned more about the GPL and linux I chose nano (a whole three orders of magnitude better).
When I figured out that most of the physics and astronomy I do involves coding, I tried Emacs.
When I found machines that didn't have Emacs or a network connection, I was shocked and horrified
(these are remarkably common in the astronomy world though you wish they weren't)
With no other recourse, I forced myself to learn vi(m). The vimtutor and docs were my friend.
Now I do not need them. I learned the keys. Then I forgot them. My fingers remember though...
J'y suis, j'y reste.
Reality must take precedence over public relations, for nature cannot be fooled.
Ok here goes nothing. I'm a DOS veteran, and I treated my DOS like most people treat their Linux, using extensive modifications and addons to improve usability and productivity. Way back there was Edlin, which even in 1984 felt really ghetto. Its saving grace was that it could be easily scripted for batch usage. Some people used Wordstar, but I personally couldn't stand it. Sure enough, I trivially coded my own full-screen editor in BASIC, and all was well. Then came MS-DOS 5.0, with its flashy Dos Shell and Edit.com, which was really just QBasic minus the Basic part. It worked, it had a cutesy little drop-down menu like Windows apps did, and its usage was obvious to even the most ignorant of users.
:P vi didn't make any sense to me, and Emacs seemed like a huge mess of plugins that ate up more disk space than the OS itself. Now I'm obviously lacking in history when it comes to the Linux/Unix world, but why the hell do so few apps make use of the Function keys ? It's always Ctrl-something.. I'm fine with Ctrl-X and whatnot because they're where my hands would sit, but how hard would it be to just alias F1 to Help, F2 to Save, F3 to Open, in addition to the classic shortcuts.. It would certainly make it much easier to teach.
So then one day I get my hands on Slack 2.0. BLECH! Where's the simple full-screen editor I've grown so fond of over the past decade ?
And then there's the matter of arrow keys... sometimes they work, sometimes they don't. Ctrk-V or Y for pageup-pagedown, and something else for top/bottom. Now I agree that Unix came first and those shortcuts were probably in use way before Dos ever came along, but why hasn't anyone taken the liberty of adding the "idiot" shortcuts so that Joe Random Switcher can actually try Linux without spending 3 days in complete darkness trying to get a friggin cursor to move ? It's not like those movement keys have anything better to do, most of the time they just spew meta-characters like ^Q^1 or whatever.
If a text editor does anything more complicated than receive text input and save it to disk, it's no longer an editor in my book. Type setting ? it's a word processor. Syntax highlighting ? it's a development environment. Kinky macro processing and pseudo-hypertext Info-page fornication ? it's a dirty old man's poor excuse for an OS. I'm talking about you, Mr Stallman.
-Billco, Fnarg.com
Long before Bill Joy, UNIX had a good full-screen editor - the RAND editor. The RAND editor dated from the early 1970s. I used it at Ford Aerospace, and it was much nicer than "vi". But it wasn't free. You had to pay RAND for each copy.
The RAND editor was much closer to "what you see is what you get" than "vi". It was a full-screen editor with all the commands on function keys. All the keys like "insert", "delete", etc. did what you'd expect. Labels were provided to show what each function key did. So it was far more user-friendly than "vi".
The RAND editor was modestly portable from terminal to terminal. It worked best on HP terminals of the period, and was table driven so that it could support different devices. But you had to change the tables in C and rebuild to add support for a new device.
The RAND editor had fewer "mode" issues than "vi". What you typed went in at the cursor position. For a few special commands, like "find", a special line at the bottom of the screen was used. But you could always see visually what was going on. Much better look and feel than "vi".
Those of us who had both available used the RAND editor.
Some of what Joy is credited for in the early days of UNIX reflects the fact that he worked for a tax-funded organization working under a contract that allowed them to give software away.
Up until recently I worked at Borland. My whole team was informed by teleconference that our work was offshored. Anyway, I used Brief in the 90s at other jobs, both before and after Borland bought it. So naturally, I assumed it would be easy to get a copy of Brief to do my development, given that my employer owns the program. Sorry, the help desk doesn't know anything about Brief and can't help you. So, I stared googling for a bootleg copy, from my Borland workstation, of Borland software.
Any wonder Borland is about to go bankrupt?