Slashdot Log In
The Birth of vi
Posted by
Zonk
on Sat Jan 06, 2007 06:13 AM
from the please-keep-emacs-trolling-to-a-minimum dept.
from the please-keep-emacs-trolling-to-a-minimum dept.
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.'"
This discussion has been archived.
No new comments can be posted.
The Birth of vi
|
Log In/Create an Account
| Top
| 459 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
So let the flame wars begin! (Score:5, Funny)
Re:So let the flame wars begin! (Score:5, Funny)
(Last Journal: Friday June 11 2004, @11:15AM)
I'm not popular amongst Unix users.
Re:So let the flame wars begin! (Score:5, Funny)
(http://www.sniepre.com/)
Re:So let the flame wars begin! (Score:5, Funny)
Why is parent not modded funny?
Would someone with mod points and a pico sense of humor mod him accordingly.
Re:So let the flame wars begin! (Score:5, Funny)
(Last Journal: Tuesday May 10 2005, @03:47PM)
Re:So let the flame wars begin! (Score:4, Funny)
Re:So let the flame wars begin! (Score:5, Funny)
(http://brokenhut.livejournal.com/)
I don't gedit.
Re:So let the flame wars begin! (Score:4, Informative)
Re:So let the flame wars begin! (Score:4, Funny)
(http://www.bsharitt.com/ | Last Journal: Wednesday March 14 2007, @09:28PM)
Richard Stallman's model for emacs (Score:4, Funny)
Re:So let the flame wars begin! (Score:5, Insightful)
I think the easiest way to sum up Emacs vs Vi is "vi" is for System Admins and people who want to get the job done quickly and efficiently without having to learn Control and Esc commands (if you look "vi" commands they are surprisingly logical compared to "Emacs"), while Emacs is for people who either have dedicated terminals or have a masochistic streak. This is not to say "vi" is better than "Emacs" in fact it is the other way round and if you are prepared to learn it then it is extremely powerful and can make you much more productive. Of course I am generalising but I do remember the first "vi" vs "Emacs" wars.
If you want a graphical editor there is "gvim" or "xEmacs" both great if you have a GUI, however if you are moving between different Unix machines you have to remember that "xEmacs" or even "Emacs" as well as other so called "free" editors may not be installed so that is why most Systems Admins learn "vi" rather than learn "Emacs". Of course if you are a Systems Admin you should at least be aware of how to use "ed" as well.
To sum up. If you like and can use an editor (not just "vi" or "Emacs") productively then go for it.
Now bring on the "car" analogies. Please no "edlin" since you should be marked as "funny" or "troll"!
Re:So let the flame wars begin! (Score:4, Informative)
Re:So let the flame wars begin! (Score:5, Insightful)
Re:So let the flame wars begin! (Score:5, Informative)
(http://www.nymar.demon.co.uk/)
Plus you can use vi or emacs in situations where you don't have a GUI available, or on boxes where there isn't much memory to spare, and you'd rather the resources went to GCC than to an X-Server.
Re:So let the flame wars begin! (Score:4, Insightful)
(http://billposer.org/)
As someone who has been a touch typist for 38 years and a 25=year Unix person, I too find it extremely difficult to accept the claim that the keyboard is necessarily slower than the mouse. That just contradicts my experience. I remember the first time I tried to use a graphical editor - Bravo - the Xerox predecessor to MS Word. It was unbearable. Obviously you didn't need to learn anything by way of commands to do simple editing - just move the mouse and type something to insert, backspace or whatever it was to delete - but I found positioning the mouse precisely to be extremely painful. And this wasn't just due to lack of familiarity with the mouse. In the interim I've used the mouse extensively for some purposes, but I will find it slow and painful to edit documents by positioning the mouse. I usually use Emacs, but occasionally I use Vim, and sometimes I even use ed. I use OpenOffice Writer occasionally for some special purpose, such as creating a sign or poster with really large type or when it is more convenient to use exotic writing systems than it is in TeX. But I don't use it routinely in part because I don't like having to position the mouse. (Another reason is that it seems to start up even more slowly for me than for other people who complain about its slowness. I don't know why that is. It takes FOREVER.)
Before believing in this $50 million worth of research, I would want to know a lot more about what they tested, who, and how. The stated results wouldn't surprise me if the subjects were indifferent typists without much experience with computers or with the software they were using. I would be very surprised if they were true of experienced users. Without the details of the studies, claims like this are simply uninterpretable. Anybody have a link to the actual studies?
Re:So let the flame wars begin! (Score:5, Interesting)
(http://fnarg.com/)
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.
Re:So let the flame wars begin! (Score:5, Insightful)
> 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..
Pretty damn hard, actually. DOS editors had the advantage of knowing they'd always
be sitting on an IBM-standard PC, with the same scan codes for the functions keys.
But function keys aren't standard. Control-letter codes are. UNIX utilities therefore
have real difficulty with function keys. You have to use termcap/terminfo, and
make sure that it's correctly configured. Control-something will always just work.
Sometimes it is set up for you, and it's always been possible to set it up for
yourself. But most UNIX programmers have never cared that much because most
UNIX programmers are touch typists...and touch typists hate function keys (and
arrow keys, and mice) because they take your fingers off the home keys. Much
better to use ctrl- or alt- codes that don't interrupt your typing.
Chris Mattern
Re:So let the flame wars begin! (Score:5, Funny)
(Last Journal: Monday October 15, @11:53PM)
They're used, just not for what you want...
I call them the "insert random garbage every time I reach too far" keys.
Re:So let the flame wars begin! (Score:4, Funny)
Okay: vi is a car, Emacs is a full cdr.
Re:So let the flame wars begin! (Score:4, Informative)
(http://maraist.homelinux.com:5180/)
"vi"'s defaults are completely oriented towards editing large text config files - better than ANY other editor I've ever seen. emacs often defaults to scrolling past the end of the screen (where you can miss important info if you're not careful). Other editors auto line wrap, or don't properly handle control or windows characters (vi shows nice ^M or whatever symbols). Search-and-replace is fast, and extremely expressive (moreso than any windowed dialog I've ever seen, including [xg]emacs). These are the tools of the sys-admin.
That being said. Remote server management is best "designed" to use a web interface. Any shmuck can design an application that has a foo.properties or foo.conf or
The only remaining elements are buffer-overrun exploits, DOS attacks, authentication... In the UNIX world, you have to be root to edit the config file, so that was considered secure enough. But apache port-80 proxying is commonplace now.. You get all your security up-front. Granted the flaw in my argument is that apache doesn't have web configuration - and probably never will.
Every home-use NAT-box / router I've seen has http interfaces, and that's just dandy for me.
Re:So let the flame wars begin! (Score:5, Funny)
Re:So let the flame wars begin! (Score:5, Funny)
(Last Journal: Tuesday April 26 2005, @06:00PM)
Re:So let the flame wars begin! (Score:5, Funny)
(http://matt.waggoner.com/ | Last Journal: Tuesday February 17 2004, @02:03PM)
Let me take care of the ObSequenceOfReplies:
cat?? You pussy! REAL men open a file handle manually through
wires?? You pussy! REAL men use huge electromagnets to manipulate the electrons inside the RAM directly!
magnets?? You pussy! REAL men push the electrons into place using sheer force of will!
I think that about covers it. Someone want to add a Chuck Norris variant?
Re:So let the flame wars begin! (Score:5, Funny)
(http://en.wikipedia.org/wiki/User:H2g2bob)
Re:So let the flame wars begin! (Score:4, Funny)
(Last Journal: Tuesday January 30 2007, @08:29PM)
'Nuff said.
Re:No need for Emacs vs vi arguments (Score:5, Funny)
"When I use an editor, I don't want eight extra KILOBYTES of worthless
help screens and cursor positioning code! I just want an EDitor!!
Not a "viitor". Not a "emacsitor". Those aren't even WORDS!!!! ED!
ED! ED IS THE STANDARD!!!"
I've been using vi for so long... (Score:5, Funny)
Vi is the ultimate editor, for one main reason. It's a modal editor, so commands can be mnemonic. With editors like emacs, you're always having to hit ^X before commands, or with MS word you're always having to lift your hand off the keyboard to move the silly mouse around. With vi, you don't need a steenking mouse. Your hands never leave the keyboard. And commands make sense and don't require that you hit some yucky control sequence to initiate.
I love my vi.
Re:I've been using vi for so long... (Score:5, Funny)
(http://www.soundclick.com/clarity702)
Re:I've been using vi for so long... (Score:5, Insightful)
(http://marshallbrain.com/manna1.htm)
Ironically, it doesn't really matter all that much if a command is mnemonic or makes sense in some other way, precisely because, as you say, "they are so ingrained in my brain I don't even remember the actual key sequences."
And from the point of an Emacs user, it doesn't seem so different to need to hit C-X before some commands, than to hit ESC and :.
That said, they're both fantastic text editors. Programmers do their daily work with text, and these two text editors really reward the time you put into learning them. Who cares about a learning curve if this is the sort of tool your career is built around; you need power.
Re:I've been using vi for so long... (Score:4, Insightful)
For anyone who hasn't quite got it yet (the joke, or the approach), once upon a time the Control key was located where the Caps Lock key is now located. How keyboards have changed, mostly for the worse, over the years is an interesting discusssion, but I'll leave that aside for now. The point if you're an emacs user, you need the Control key somewhere handy. If you're a vi user, you need the Escape key handy. By handy, I mean you're not taking your hands off the home keys and reaching for a key that you'll be using every few seconds.
The common approach is simply to remap the Caps Lock key (a mostly stupid and useless key if there ever was one). Doing so is fairly trivial, and works without any sort of ill effect. On *nix systems, there's an example in xmodmap(1). For Windows, there's a utility provided with the various Resource Kits that's called remapkey.exe or something or other. Personally, I think vi is the cat's meow, and to add to that, the Escape key, while a staple of using vi, is also useful in many GUI applications, even on Windows, so it makes perfect sense to remap the key and have it handy.
The real point about vi (and learning vi for those who haven't yet invested the time) is that those same key strokes that you've spent time learning, memorising and eventually reconfiguring to suit yourself can, and typically are, applicable to just about any application out there (Firefox included, though with some trouble). Using set -o vi in bash, for example, can make you feel like you're right at home. On the other hand, those seemingly all-purpose keystrokes don't work everywhere. Editing vi commands within vi aren't possible using vi keystrokes. Another common program is screen, which demands (mostly) a Control key combination entered before any other command. Further info and fun bed time reading is readline(3).
It's worth noting that some vi users don't remap the Escape key, but use the Control-[ combination (which is actually the same as hitting the Escape key). I guess the habit could be learned over time, but personally I find the [ key is a bitch to hit regardless of what keyboard I'm using.
Re:I've been using vi for so long... (Score:4, Informative)
There's the character level ("C-f"orward, "C-b"ackward), and line level ("C-p"revious line, "C-n"ext line, "C-e"nd of line, "C-a" beginning of line, can't use C-b you see, so might as well use the start of the alphabet). That's when you think of text as rows and columns of characters.
If you think of text as words and paragraphs, then you replace "C"ontrol with "M"eta (which is the Alt key on modern keyboards). "M-f"orward word, "M-b"ackward word, and so on, at least in fundamental mode.
You can also think of text as regions within matching parentheses or other delimiters, then you can use the "M-C" commands (both Meta and Control + some mnemonic key) to move: "M-C-f"orward one expression, "M-C-b"ackward one expression, etc.
What makes all this powerful is that emacs can recognize what kind of file you're editing, then it chooses good defaults for the various levels. So if you're programming in C, when moving around one word at a time, emacs doesn't get confused by the punctuation, and if you like to use something like CamelCase, then there's a minor mode which changes for "M-f"orward and "M-b"ackward word commands so the cursor stops before each hump inside an identifier instead of jumping to the next word.
Unfortunately, emacs has so many commands that there's not enough keys on a keyboard to have simple mnemonics for all the things it can do. That's why we get things like "C-c C-o C-1" in esoteric modes. But if you use specialized modes, the idea is that you should select a key that you like and map the function to it. Usually, the functions keys F1-F12 are completely free to use for anything.
Re:I've been using vi for so long... (Score:5, Funny)
Of course, the first thing I did when I was confronted with vi back in the 80s was write my own editor.
Re:I've been using vi for so long... (Score:5, Funny)
He wrote another editor for that purpose.
Re:I've been using vi for so long... (Score:5, Funny)
Re:I've been using vi for so long... (Score:5, Funny)
Are you claiming that editors are intelligently designed?
Recommended for new *nix users? (Score:5, Interesting)
> 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?
Re:Recommended for new *nix users? (Score:5, Insightful)
(http://riddoch.org/ | Last Journal: Saturday March 01 2003, @10:55AM)
While emacs, pico etc are installed on most linux systems, you won't find them on Solaris, AIX or HP-UX.
For an end user, they probably shouldn't worry too much as they'll have kedit or something in the GUI, but *nix admins should know vi.
Speed of vi (Score:5, Interesting)
(http://riddoch.org/ | Last Journal: Saturday March 01 2003, @10:55AM)
Those who forget history... (Score:5, Insightful)
This is good history to remember. Those who weren't there find it hard to appreciate the tremendous leap forward of Unix Version 6 and ed on a PDP-11. We had been using teco on our PDP-10 and the cousin of ed that was on Multics, but we had been getting into PDP-11s for more and more things. Comparing ed on Unix with the line editors available on PDP-11 DOS/BATCH and that new-fangeled RT-11 thing was amazing. Along with all the other tools available on Unix, the PDP-11 went from a toy to a state-of-the-art (for then) development environment. We were mostly on DECwriters and TI-Silent 700s runing hardwired 1200 baud at work and 300 baud from home over the modems. We started to get VT-100s about the time vi was being released and it was again a great leap forward.
Thanks Bill Joy! I have used your work in the BSDs and Suns and all the followons over the years, but vi was a most important gift at an important time.
Echoes of the past (Score:5, Funny)
(http://silmaril.ie/cgi-bin/blog)
The time for dual-mode editors (where you have to press something before you can begin to type, and then press something else when you stop typing) is long since gone, thank goddess.
From TFA: (Score:4, Funny)
(http://www.emacswiki...iki/ChristopherSmith | Last Journal: Wednesday November 07, @07:35AM)
(ay)