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.'"
(I'm using Emacs, BTW.)
Now that computers are so much faster than you can think ...
On a (subatomic) level of comparison that most humans, as I perceive, think on in these days.
CC.
TaijiQuan (Huang, 5 loosenings)
Edlin is obviously the best.
I think in vi. When editing, commands just happen like thoughts. They are so ingrained in my brain I don't even remember the actual key sequences. When a vi newbie asks, "how do you do XYZ in vi?," I have to stop and think hard, because I don't even know the commands any more.
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.
> 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?
It is 2007, the story is from 2003. Who really uses either editor these days?
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.
From the article: ... sounds like Grandpa Simpson
"By the way, before that summer, we could only type in uppercase. That summer we got lowercase ROMs for our terminals. It was really exciting to finally use lowercase."
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.
modal editors is the worst idea in the history of computing. [sic]
This thinking is precisely why vi continues to be superior to other editors. For some godforsaken reason people seem to be afraid to make modal editors, so "modern" editors damn you to using a mouse or ugly awkward command sequences for everything. Can someone explain why modal editors are a bad thing? It is this very fact that's kept me using vi for decades now.
The article is 3 years old, ffs.
In my experience vi is 900-1200 times more efficient that Microseft POS Visual Studio when programming.
I got used to using pico for years. It was installed on all the UNIX systems I worked with. Fast forward many years when I had to edit a config file on a UNIX server that didn't have pico installed. -- I had to google for vi commands...
Up, Up, Down, Down, Left, Right, Left, Right, B, A, START
This could get as ugly as the creationist vs evolutionists debate...
I prefer Vi, since I spend lots of time at terminals logged into remote machines. Although things are faster these days, having such a tightly optimized editor is useful.
I have taught Emacs. That was an experience that was. I had to spend a week teaching myself how to use it, then teach a bunch of freshly minted undergrads, who then thought I was some kind of Emacs Guru. How wrong they were.
Project students, being slightly more experienced final year bods, were all force marched to the Vi camp (well, gvim, I'm not that cruel), so I wouldn't have to use The Eight Megabytes and Constantly Swapping Monster if they needed help.
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.
(ay)
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Contrary to parent, I want to learn how to use Emacs. I read about old *nix hands and programmers using it and its potential power excites me but I don't know why yet. However, I find the tutorial very.... um, I just don't remember the commands once I go through it.
And why do they teach the letter commands to go through the program when the up, down, left, right arrows exist on every keyboard and do the job?
What is the easiest way to learn emacs? (Besides just using it.)
ioops, I did it again!
the only permanence in existence, is the impermanence of existence.
vi was a horror when I started using UNIX systems and I couldn't understand why anyone would want to use such a strange editor. So I went with emacs and was happy. But after a while (dunno how this happened) I went back to vi(m) and invested the necessary time to learn it. I took me about a year before I could say that I'm able to use it efficiently, so the learning curve is pretty heavy. But at the end I don't regret it at all, because I feel a lot more efficient with vi(m) than with any other editor. I couldn't live without it now.
Good tools are hard to master.
Brief (by underware) is better.
I use both VI and Emacs and I just miss Brief. I thing is that the code was sold to Borland which last I looked became Impress (which isn't impressing me) and the code base is shelved. Can we OSS the code base?
I understand the issues. What I do not understand is why the HUGE advancements in VI for instance are so obscure that I use it at only a very primative level. Then we have Emacs and xEmacs.
I think we need some courses put together for kindergarten kids. The biggest issues is that most people are not willing to spend endless hours digging through unorganised and disjointed documentation. So we don't learn what our tools can do.
This is sad.
Here is what I think. I think editors have been around for 40 years at least. Some have horrible personalities. But the issue is not the personality... it is the person who loves the personality.
So perhaps we need to ask why I cannot ask Emacs to present the full "Brief" personality. I know that Emacs can do this. I've programmed a number of elisp commands. The issue then becomes.. how do we work as a community?
I am certain there are at least a billion answers. I kinda think there is a lot of code laying around that the authors of which pained over and they have "given up".
I do not know all the things VI can do. I wish I did. I wish I could rent a lecture that showed me. Numbers I got are that this costs $1000 a minuet.
Maybe this is why its not there.
Alas
I've been using them since 1993 and have never gotten used to them. I got hooked on the Borland 3.1 IDE and IMHO it was a better text editor. I appreciate the efficiency of nano and others when logged in over a serial line, but I really miss BC. One of the biggest problems has been keyboard sets. A Sun keyboard gives different scan codes than a PC and if the terminal settings don't take this into account, things get wacky. You end up with a complete evolution of keys and combinations in each editor just to cut and paste a line of text *ugh*. Nothing the same between them. Another problem with vi (and maybe others) is their growing dependancies on system libraries. I recently tried and install of vi which complained of a gtk dependancy; sheesh. This one [0] is from an embedded arm system (debian). Why do I need gpm when running vi? All I want is a simple, independant text editor that fits in a small space. The mouse isn't even useful in vi (directly). Another curious feature of these text editors is people seem to fancy themselves l33t h4x0r5 when they master the hjkl keys of vi or other un-intuitive keyboard combinations. People, you've not cracked a Gibson here; it's just a text editor. Go fix Bind, then we'll all be impressed.
[0] vim.basic: error while loading shared libraries: libgpm.so.1: cannot open shared object file: No such file or directory
boycott slashdot February 10th - 17th check out: altSlashdot.org
seriously
The article has definately triggered some nostalgic moments, but it's an article from September 2003 that reports on the content of an interview conducted in 1999. It isn't really news any longer.
"Come on, whats this. Are you playing that stupid ascii game nethack again?"
"No, I'm working on my vi-fu. I seem to have mastered the movement keys"
He should have used vim - more features.
modal editors is the worst idea in the history of computing.
Insert mode. Overtype mode. That's modal. I suppose you're against that.
If that qualifies as a "boon to mankind". OK. :-)
dave
Interesting article, but this article was published on 11th September 2003.
I may be a young whippersnapper with only a couple of years of non-MS Windows experience under my belt but if there is one thing that I really felt in love in the unixy-way of doing things then that thing is vi (or vim). Sure, it has a very steep learning curve. After a lifetime of notepad-like editors, who in their right mind finds all those modes and obscure commands palatable? Yet, after a bit of teeth cringing in front of a terminal editing text then all those obscure commands start to sink in, make sense and even getting indispensable. The vi way of editing text is such a time saver that starts to be indispensable. As I see it, anyone with a reasonable vi experience is able to become much more productive at writing text than the regular way. All the operations the user will ever need are literally a couple of keypresses away. You don't need to waste time reaching for and using a mouse, resort to finger gymnastics to use modifier keys... Everything is just there at the tips of your fingers. And even if you need any custom task you can bind any custom operation to a key shortcut and you are ready to go. So many thanks Bill Joy. Your work is much appreciated. Kudos!
Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
> Do you recommend vi to all new *nix users now?
No, because recommending vi to anyone means having to spend more time helping them leave the editor. The fact that the editor has (almost UI transparent) states where keys behave differently throws off most people. But I do like to help people who have already chosen the editor and damn themselves for not changing.
Why have sex when you have six?
Take off every 'ZIG' !!
the common argument against modes in software is that they lead to mode errors. Users forget they're in the mode and thus the software doesn't act like it's expected to be. there seem to be very few exceptions where that is no problem, e.g. holding down the shift key to enter the uppercase mode
while (!asleep()) sheep++
oh go on. go on go on go on go on go on go on go on.
-- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
I'm new to Unix-type things, but I really like vi. My favorite features are the movement commands. As soon as I found that I could use the parentheses and brackets to move around and copy/paste, I was hooked. I still haven't figured out the buffers that well, and I miss the idiot-proof ctrl-c/x/v, but p hasn't killed me yet. But selecting the last 2 sentences is much easier with 2( than it is with the mouse, with which I have to visually count sentences and then hunt for the beginning of the one I want to start from.
I haven't found vi or emacs to be hard enough.
That why I port edlin to every box I work on.
"The price good men pay for indifference to public affairs is to be ruled by evil men." ~Plato (427-347 BC)
Yes, Overwrite mode is lame. There should only be insert mode, which would make the editor modeless.
"My PID is Inigo Montoya. You kill -9 my parent process, prepare to vi. "
modded down in three, two...
There is no sanctuary. There is no sanctuary. SHUT UP! There is no shut up. There is no shut up.
Vi's mode really helps my RSI, but emacs is so powerful that I've choose to adopt it as my primary editor.
:-|
If only existed a good emacs mode for modal editing...
And the rebuttal to the common argument against modes is "The status line displays the current mode."
Contribute to civilization: ari.aynrand.org/donate
I run Portable Openoffice and Portable Firefox from a usb pendrive. The only other programs that I have really wanted was a portable version of Drivecrypt and Portable Vi. That, and maybe TexMaker with all the requisite backend LaTeX stuff to make PDFs.
I shouldn't have to look at the status bar to know what keypresses are going to do. I know whether or not I have my fingers on Ctrl-X or whatever without having to look away from the text I am focusing on.
All code that doesn't fit an 80 column terminal was written by failures.
here
Midnight Commander (works great in both CLI & GUI)
Politics is Treachery, Religion is Brainwashing
I don't know why, but it 'feels' better. Yes, I sometimes miss the syntax highlighting of vim and I really love the visual columnar blocks (don't need it much, but when i do it's really nifty!). But overal I feel vim has become too bloated. Too many config files, too many dependencies and (yes) too many commands.
So, back to vi it is for me.
!ERR: Signature not found.
I wish somebody would port Amiga's CygnusEd over to Linux. While I'm an emacs user when working on Unix systems, I still recall fondly the ease of use, speed and straight-forwardness of working with CygnusEd on my trusty A500. It just took a bit of AREXX / VLT magic to turn this thing into a full blown email client, just as an example.
;-)
Ok, the softscrolling might be hard to do without the custom chips on Linux system, but I guess I could do without them for now
Ever wondered whats wrong with the world? http://www.ishmael.org/
Edlin is obviously the best.
;-)
:) Yes, VI helped many people free themselves of the shackles of certain restrictive shells....
Yeah Edlin's not bad for a 6 month quick fix in QDOS which is still available as the *same* version in Vista ! Microsoft certainly know how to resell code
I miss these old editors which had many uses..... With regards to VI for example my friends and myself used to use it to clear out a.out files under rsh (That's RSH as in Restricted SHell under System 4 and NOT Remote SHell)! Mind you that was before we worked out the far simpler command "time csh" which obviously is just a helpful command to time how long you spent in the CSH shell when you ussed that command to start CSH from the RSH shell....
Where is the confusion? You just treat insert as a command which has a limited scope. You stop inserting when you are done, just as you stop deleting when you are done.
It really makes perfect sense.
!ERR: Signature not found.
I see so-called "hardcore" Unix geeks advocating 'ed'. Nonsense! The ultimate Unix editor is "cat >filename". All the others are for indecisive wimps who don't know what they're going to write, or incompetent losers who make mistakes.
:w saves!
I actually want that on a t-shirt. I would do it myself, but I don't think my stenciling skills are up to the task.
It amazes me, with some of the hot text editors (ultredit for example) we have so many old school aka 1980 folks that just love their Vi. I despise it and the limitations it puts on others if you work in a dept with a nazi old school unix person who requires everyone use Vi. Evolve would ya. I dont need to be restricted.
We have a similar war going on today. Except unlike the EMACS vs. vi war, we don't have two systems that each offer unique benefits. Instead we have NetBeans, which is bloated beyond all hell and is as slow as a snail. And on the other hand we have Eclipse, which is slightly less bloated and only slightly faster than NetBeans.
a toggle switch front panel with a STURDY [deposit] switch was enough for me. (God I feel O-L-D!)
PDP-8s PDP-11s, Interdata 7-32s, Cromemcoes, Keronics (Data General knock offs) all those machines I used to toggle in the IPL boot codes for every morning.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
And so, to prevent mistakes, you have to check the status line before each command? If it were actually to happen, it would make editting slow and cumbersome, but it wouldn't/doesn't happen for precisely that reason. Most of the time, people remember what's going on, so they have no need for a status line. However, no one is likely to remember that all of the time (I'm sure even the most well-rehearsed vi user must make the occasional mistake) so mistakes are made.
im in ur
Let me point out some ideas I had over the years...
First, let me tell I used something like vi about 15-25 years ago, on a CP/M system (or alike... memory fails me). I got somewhat proficient at the time, using macros and the like.
Having said this:
1) Ease of use is a complex thing: a spoon is as easy as it can be. Nevertheless, digging a hole is better done with a shovel (unless you're in prison, but I digress...).
Likewise, Windows is not easy to use, despite all chants and mantras repeated by M$ brainless subjects. It's convincingly easy at the moment of purchase (which is its main mission) and somewhat easy to figure out (not entirely easy!) at the first steps.
After getting the basics in quite a short time, then reality strucks -- the learning curve stops: there's nothing else to be learned, progress comes to a halt, until you insert more coins.
Conversely, vi has a steep learning curve, but after the initial high climb one starts to run faster and plan entire complex editing sequences. It's indeed very pleasant in itself. Also, there are less limits to what one can do, admittedly at the price of knowing more commands.
2) Productivity: high gains to be attained. Human machine interface, unfortunately, sucks terribly. People worry more about criticizing innovations than questioning the status quo.
The mouse is a bright idea desperately needing improvement... it slows the operator by requiring the hand to leave the keyboard, by being specialized (in pointing -- humans use words for very good reason) and because of uncomfortable/clumsy mapping (between the screen and the table).
The keyboard, this is old news, allows for a very low transfer rate (about 20 chars per second, the typical maximum).
We need faster computer-brain communication and voice input won't do.
vi lessens this problem by not requiring a mouse and compressing communications going through hands with a special protocol (those cryptic vi commands).
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
I want to use an editor to edit my files, not an operating system like emacs.
Nor do you need Firefox 2.0 with a 200MB process size to access your mailbox. Firefox has a generalized page rendering subsystem. It's a sunk cost, justified by one or two other uses. Emacs has a generalized scripting language, which ironically, is also the love object of a sufficiency cult. What's your point?
I'd say it's less irritating because it's rarer. However, if you accidentally engage overwrite, that is indeed a bitch.
im in ur
Mistakes? Psh, I never make any mistakes. Seriously, what are you thinking...:wq
Man, we must be getting old...
:-)
vi is the basis/root of so much of what is out there. The obvious/popular one is the quick search mechanism in FF. I'll leave it as an exercise to the user to come up with programming examples.
That being said, I wonder if it's worth it for newbies to learn it...
Twelve-and-three-quarter inches. Unyielding. This wand belonged to Bellatrix Lestrange.
I wish that /. would build in vi so I could use it to write this f'ing comment!
Twelve-and-three-quarter inches. Unyielding. This wand belonged to Bellatrix Lestrange.
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.
I'm a vi user, and I will die a vi user Has anyone done a study comparing editors based on productivity? It would be interesting to see how many key presses are required for different tasks.
Well, it's not exactly vi, but portable gvim is useful nonetheless.
Joy said that VI was designed for slower dialups and that Emacs was designed for fast channels. That is not true. The Emacs redisplay algorithm is independent of the editing commands and was/is adaptable to the speed of the communications line. In fact, I remember using a version of Emacs called FINE (Fine is not Emacs), developed at Carnegie-Mellon and written in the mid 70s. FINE worked very well at 1200 baud -- I wrote my dissertation on it.
I'm against those GUI-interface things. You never know in which window your keystrokes are going to.
My vote for VI.
... VI equals power ... nevermind ... it was funnier in college...)
(For the less clued, voltage times current equals watts
I have used editors on many systems. vi, edlin (ugh), various windows editors starting with notepad to ultraedit, as well as proprietary editors, such as SAP's ABAP editor.
But for the working programmer, who needs to both code and look at data, sometimes in hex, I have not found an editor that is better for writing code and also looking at data, than IBM's ISPF editor.
So far as what kind of commands you use to perform editing functions, that is a matter of both preference and familiarity. You will tend to use and like what you know the best. It is like arguing what style and color of shirt is best. No one is right or wrong, each has their preference.
I am talking about functionality for coders.
The two best things about ISPF that I have not found in any other editor:
1. Vertical, columnar, cut/copy/paste/insert across lines, without affecting characters to the left or right, which allows editing data that is in a fixed format, as in what may be transmitted via EDI or in record based data files. So you can copy/cut/paste/insert, by example, the 53rd character on each line, all at the same time in a column, without affecting any other character in the file, move that column of characters and paste it elsewhere in the same file or into another file.
2. An intuitive hex display that displays hex values directly below each character, rather than opening a separate window that requires you to read two different displays at the same time and hope you are keeping the character counts in sync. This allows parsing data to find if there are non-printing characters causing errors in processing routines or violating agreed to formats between applications, which is still important in businesses and on non-mainframe platforms
Kind of like this:
466626626666276673
B9E40F60C9B504893A
Rather than this: | 52617468 65722074 68616E20 74686973
| 3A
(hope that formats correctly, use a mono-space font like courier if not to see what I mean)
There were some efforts to port ISPF to other platforms, (SPF-PC, SPF-SE, etc), but greed and 1950's thinking concerning copyright, marketing and intellectual property, basically doomed them, just as it doomed Apple, Detroit, Betamax and many other products.
However, while looking up those editor names over on Dave's SPF Editor page at planetmvs, I just found an open source version that claims to work on Linux and Windows. The guy is calling it Hybrid Editor XE.
I'm going to take a look, but seeing as it is from Japan, and having experience with code from Japan, I am not that hopeful. But I will keep an open mind. No offense intended to anyone from Japan, but I have seen code from three different Japanese corporations, and I was not impressed, to say the least. But seeing that my experience is with only three sources, is the reason WHY I am keeping an open mind.
Vi is perfectly usable over GPRS connection using a virtual keyboard + touchscreen. Typing in ctrl-sequences requires much more work.
I used Emacs/Jed for 12 years but have now more and more found myself in vi(m).
'Once scientists, even the dim-witted social scientists, get muzzled, the Western Civilization is finished.' - oldhack
You know, the article doesn't mention Bill Joy's other "gift" to mankind: the C Shell.
Oddly enough, having a slow modem was one of the things that pushed me to learn vi.
The "user friendly" editor that was promoted when I was in school was pico. Waiting for a full screen update was just plain painful at 2400bps.
I started using vi (on an HP-9000 K-Class server) back in early 1999. It was my first exposure to UNIX and vi. It was also the only editor on that system! I got into Linux and the BSD's because of that, and vi (mostly Vim) has been my favorite editor since. I use it on Windows, OSX, Unix and Linux. I am a programmer, and find the commands quite logical for programming.
I ran Emacs once, just to see what it was like. I damn near panicked because I couldn't figure out how to exit the damn thing!
No matter where you go... there you are.
"I edit that I edit".
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
What's emacs? Is that one of those Apple computers?
"If your parents never had children, chances are you wonât either." -Dick Cavett
Has Bill Joy spoken about his feelings towards vim anywhere?
load "linux",8,1
I remember once getting really fooled by this. I'd accidently created a file with two sequential copies of the text I thought I had. I searched for "foobar", which worked as expected; then I searched again. The screen didn't change, and the cursor didn't move. So, first I checked if the mainframe had crashed, but that wasn't it. It took many minutes of fooling around to realize what had happened: EMACS had figured out that the screen already looked right, so no need to do anything (except perhaps update a character or two on the status line). I wonder how many other people had similar experiences back in the day.
So, sure EMACS may have been too big to run fast on Bill's machine, but bandwidth to the terminal had nothing to do with it.
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.
Well, on the keyboard for which vi was designed, escape was where tab is now, right above control, which is more convenient certainly. Even on the standard UNIX layout, escape is where the tilde is now, beside the 1, which is better, but probably not as nice as where tab is. It's easy to remap caps lock to control, but it's trickier to suitably move escape to the tilde, because you still need the tilde for home directories, etc. You can't put it where it belongs easily (above backspace) without fucking up the layout. Backspace should be where the pipe is, with the pipe and tilde directly above on the top row.
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?
Many years ago, my boss finally got a terminal and 300bps modem to hook up to the mainframe runing VM/CMS. So we're talking after the weekend. He said: it's painfully slow to edit anything, but I've found a nice solution: I just drink beer, that slows me down roughly to 300 bps, so everything is just fine. The only drawback: he didn't get reimbursed for beer.
"The people doing Emacs were sitting in labs at MIT with what were essentially fibre-channel links to the host, in contemporary terms."
What in the world are you talking about? Either somebody fed you a bunch of hooey, or you are a vi zealot. I worked with Emacs on 2400 baud modems; screen updates occurred asynchronously to commands executed (so if a command implied that the previous repainting was now irrelevant, it would start the next series of screen updates). And it also took advantage of VT terminal primitves for shifting blocks of text. It was a very livable editor, when you were doing work via dialup!
Emacs' programmibility, customizability, IDEs for programming languages (though there does not appear to ones for Java, JavaScript or HTML/JSP markup, but maybe somebody else can enlighten me here...) makes it the king. Vi, as helpful as it was on very old boxes, is now irrelevant. They started out with some poor design choices, and all the fixing up is not going to save it...
You make the point well enough about all the security. That means it's a lot saner to run your web configuration through Apache or something. It also means you'll have to deal with issues like a username/password, and you'll probably want to proxy the whole thing through SSH or something (or you'll need an SSL-enabled Apache)...
Unless you're doing something AJAX-y, changes do require you to fill out a form and hit "submit", and wait for a response. I don't really see how this is different than editing a config file and pinging the app. But if you're going to do something AJAX-y, we're getting pretty heavy into the realm of external dependencies -- this is no longer something you want embedded into your app, the way CUPS configuration is.
And I don't really want to have to install Apache, mod_ssl, and some AJAX libs just to configure, say, an IRC server, or a DNS server.
Besides: It doesn't have to require pinging the app. I seem to remember exim checking the timestamp on its config file with every mail received, so if you made a change, you could expect it to take effect instantly. Another way to do this would be inotify -- I believe vim writes all your changes to a temporary file, then 'rename's the temporary file on top of the original one. Thus, as soon as you see a new file there, you can probably parse it -- worst case, if you don't trust the text editor, you can wait a second or two for the inotify events to settle.
Now, there are advantages -- you can actually display a finite set of options, you can show the user what their system can actually handle, and there aren't going to be any syntax errors. But none of these have ever really been a problem for me -- I can crack open just about any config file, read the comments, and make a few changes, and be confident that it'll work.
Don't thank God, thank a doctor!
One can edit in VI very efficiently without moving the keys from the home position, and doing unnatural stretches for odd keys.
Love many, trust a few, do harm to none.
Even DEC did try. EDT got pretty good with screen painting (it was certainly clever about knowing which parameters can be defaulted in VTxxx control sequences), and it had an option to use only the top N lines of the screen for really slow connections (it was painful at 300 baud but still good enough). Also, CHANGE mode in V1 of EDT (still available in later EDTs, EDT is really four editors in one) has a similar reek to vi so I would have thought the Weenix Unies would like it. KED (the mini-EDT on that new-fangled RT-11 thing) was nowhere near as flexible as EDT (and implements only CHANGE mode, and only the V2+ flavor) but it still made a good effort on slow terminals.
As for vi, I don't get it. Yes I use it on a daily basis too but I despise it, it's inconsistent and line-oriented and case-sensitive and all-around annoying. The only good thing I can see about it is that every single Weenix system has it, so wherever you go, you can always find an editor your fingers know how to use.
I remember an HP-UX workstation I used to work on that had the escape character right above the Caps-Lock key. Since vi was my main editor I often hit the Caps-Lock key rather than escape. Instead of a software key re-map I made a minor hardware modification and pulled the Caps-Lock key off the keyboard. It made it much easier to find the escape key and also eliminated the times when I would mistakenly go into ALL CAPS MODE.
Telling a modern computer user to distinguish between text editors and electronic typewriters is like telling a cell phone user to distinguish between a rotary dial and a keypad. Anachronistic in the extreme.
There is no reason why these two tasks should be logically separate from each other.
[an error occurred while processing this directive]
For writing books, yes. But computer programs aren't text. When you "write" a computer program, you typically write in batches of 10-50 lines at a go, then go back over, making small edit after small edit. Programming usually involves far more editing than straight-out typing.
This is what vi is designed for and what modal editing concepts are great for.
The cake is a pie
You might as well argue that a bicycle is lousy invention because you will fall over all the time, when people who ride bicycles rarely, if ever, fall over.
There are countless human endeavors where you need to be consciously or subconsciously aware of some state you are in, and adapt your behavior accordingly. Many of these endeavors reward mistakes with death rather than a few junk characters in your terminal. In short, people are quite adept at handling the modal nature of vi, and people who choose to do so can be quite productive.
XML causes global warming.
XML causes global warming.
Yeah, that's right, vi and emac can't hold a candle to the worlds greatest editor: Edlin! You could do anything easily with Edlin! No fancy pansy key presses to memorize no itsy bitsy weakling commands to deal with. Edlin was a real coders editor. :-)
I've used Eclipse and Visual Studio. In both cases I tried to get over the initial revulsion and find out what's attractive about these tools. In both cases I went back to vi in a month or two.
I find that GUIs break my concentration. Vi lets me focus on the code - the task of communicating with the machine is in muscle memory.
I've worked with programmers of varying abilities over the years. All the really good ones use vi or emacs. Most programmers shouldn't be programmers. They lack the abstract thinking needed to create substantial value in software; they are merely clerks copying data from A to B.
Don't expect good programmers to follow the lead of bad programmers, let alone "most computer people". Would you expect automotive engineers to stop using ProE because car mechanics don't use it?
I thought Jef Raskin's suggestion of leveraging the color capabilities of modern systems by changing or inverting colors dependent on mode was a pretty good answer to that argument.
:-)
Tomato/Tomahto.
Yes, actually. Disabling overtype mode (if possible) is one of the first things I do in any new editor.
The lack of mode notification sucks.
.profile or something.
The backspace problem is probably with your terminal config. You can fix it with
stty. Once you get the formula, put it in your
Something like: stty erase ^Vbackspace.
Alternatively, vi doesn't understand your terminal type. echo $TERM. Try "export TERM=vt100" or something.
### Vi is really two separate applications; one for entering text, and one for editing text.
And that is the thing I never understood about Vi. Sure, from a historical context it makes sense, since ed didn't had a full-screen interface one had to separate entering of text and editing and since vi is kind of build on top of ed, it kept it that way. The limitation to write via a 300 baud modem didn't really allow anything else either of course. But from an interface design point of view today, where we no longer are limited to 300 baud modems, it just doesn't make much sense at all. When I type text there never is a clear distinction between inputing it and editing it. In the strict sense inputing means straight forward typing, no backspace, no cursor movement no nothing, just text from left to right, all those other stuff is reserved for the edit-mode. That however is totally not how I or anybody I know works. I constantly jump around, insert a bit here, a bit there, go a few words forward or backwards, mark and delete a little here and there. Switching modes between each and every of these operations, which just take a few second or less, is totally annoying, and the Esc key not being placed in an exactly ergonomic position doesn't really help much either.
In short I simply don't get how to use Vi the Right Way[tm], since it works completly different then I work and think. I have never meet anybody who either could show or explain to me how to actually use Vi, since those that used Vi often just did it either by force, since nothing else is around on some Unixes or since they simply gotten used to it over the years and haven't bothered to look at the alternatives, but so far I have meet nobody who picked Vi because of how great its user interface is. And looking at Vim and all those other later Vi clones which constantly blur the line and allow you more complex movement even in edit mode I just have some doubt that there actually is any benefit.
One one last word to the chaining of commands that Vi can do: Begin able to delete the next 5 lines, sentences, paragraphs or whatever via a simple two letter command sounds nifty in theory, but I have yet to meet any real world example where that actually would be useful, I mean how am I supposed to know that it are exactly five lines and not six, or ten and not eleven? Am I supposed to count them by hand on the screen? How exactly is that faster then just jumping the cursor down to where I want it to actually delete and start deleting? Instead of blindly typing a delete command and hopping that I haven't miss counted the number of lines, sentences or whatever.
Maybe its time for somebody to just place a camera above his shoulder and show some of the mighty power of Vi in real life and upload the result to Youtube, since I really have a very hard time to 'get' Vi and I have actually used that thing for a few years for all my config file editing, but it really didn't help in understanding it at all.
reason for liking vi... I was a sys admin 12 or so years ago working in sun and solaris environments and used vi exclusively. As time went on I found myself navigating around in linux relatively infrequently as I worked in various different job capacities. But one thing that always amazed me was whenever I need to edit a file in unix, I could always rely on vi and the 2 or 3 commands I needed to know to function effectively. I could get anything done just by using "/", "x", "a" and "wq!".
### Insert mode. Overtype mode. That's modal. I suppose you're against that.
Actually it is bad, so bad that Microsoft and a bunch of other keyboard manufactures moved the 'Insert' key which switches between those modes and made it only available via weird Fn-Key combinations. For a lot of people it causes a lot more trouble then worth it and truth to be told, for writing text I have never actually used the mode myself, the only reason when I use it is if I program and have to change some stuff where overwriting is faster then hitting delete or using regex (say multiple lines below each other where a '+' has to be changed to a '-' in only a single column).
vi edits YOU!!!
Comment removed based on user account deletion
That is a really good idea. I plan on doing that if I create an editor.
Please, for the good of Humanity, vote Obama.
No kidding. Arrrgh!
/etc/joe/*, find ever occurance of -wordwrap, and add a space in front of the line.
Why is this ever on by default? Unless I specifically set the desired width, the editor has no way of knowing what is appropriate.
FYI, joe version 3 comes with broken config files that enable this, despite joe having excellent handling of side scrolling for long lines. It's fixable. Go into
alias nano="nano -w" is found in most of my .bashrc files. You can also add set nowrap to /etc/nanorc or ~/.nanorc. I just noticed that option today.
End of Line.
"... 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..."
:) It also supports old school BBS' too.
Well, who said you had to use faster speeds today? Just use SyncTERM and tell it you want a slower connection speed like 1200 baud.
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
I've trolled about vi myself a couple of times in the past, but installing FreeBSD a few weeks ago finally convinced me to take the time to pick up at least a very rudimentary degree of mobility in it.
If nothing else, the one thing which it gave me which I'm actually grateful for is that it disrupted my old habits/patterns (if only temporarily) and forced me to have to think. Vi is a thoroughly alien interface compared to virtually anything else I've used, and although with the tutorial (which is surprisingly good) it's discoverable, I don't feel it would have been without it.
I'm still undecided as to whether or not I feel the interface has actual technical merit, or whether it's simply something vestigial that certain people are so fond of for whatever reason that they've been unable to force themselves to throw it away...although if it's true as Mr Joy says that the editor was originally designed for, and works in, extremely low-bandwidth environments, then that element at least is something which I feel is very much worth keeping.
One thing which I find extremely distressing these days is that many people seem to feel that the conservatism which motivated the philosophy behind a lot of early UNIX software is an anachronistic attitude and is no longer warranted, given the glut of cpu cycles and other system resources we now find ourselves in. I would urge such people to remember that even under normal circumstances, in some situations (such as embedded/small devices) such is not always the case, and that not only that, were a sufficiently large scale disaster of some kind to happen, it could universally cease to be the case also.
Conservatism is a good thing to hold onto. Certainly, when the sun is shining and everything is fine, you can feel lulled into believing that not only do you not need it, but that you'll never need it again. If the last few years have been any indication however, some parts of the world are going to continue to face severe environmental catastrophes going forward...and the conservatism of old school UNIX may be one of the only things we know about that could keep computer infrastructure going in such places under such conditions. It is very strange how the past can often end up being the present and the future, especially when we do not expect it.
Back at the Unix Users Group meeting in Santa Barbara in around 197?? Ed Gould described how he was working on a full-screen version of ed.
Let's give credit where credit is due - to the *entire* group of folks at Berkeley.
People who use vi have names like Lenny and people who use Emacs have names like Carl.
I now write code in VS.NET and use ViEmu, which makes the text editor quite vi-like (actually vim-like).
Heartily recommended.
I once had a dream. All I remember from it was that it ended with ":wq".
Bill Joy makes this really off the wall comment about browsing the net on a satellite phone at 2400 baud. First of all, why pick such an obscure way to connect to the Internet? Secondly, 2400 baud is way off from 300. He makes it sounds like that's the only way to get such a slow connection speed.
As far as the Internet goes, you could always simulate this by deliberately slowing down your connection. It's easier to slow down fast connections than it is to speed up slow ones. :)
Internet aside, though, just get a serial terminal and set that up. As far as I know most of them have adjustable baud rates (I have a portable 286 running DOS, and I use kermit to emulate a vt100--baud rate can be whatever). That kind of hardware is not difficult to find, and plus you can always emulate it and see what 300 baud is really like.
Maybe I'm crazy, but low baud rates are kind of fun. It really makes you value your time more when you have to sit and watch the text being printed out on the screen. You start to think more about what you're doing and work more efficiently.
In the early 80's, I used to do tech support on some of the earliest commercial Unix systems. Vi was just about all you could use to edit system files when dialing in to a customer's system at 1200-2400 baud.
I used it so much during that time, my neurons became permanently wired to the command set. I still find myself using vi to edit system files, mostly because it's what I've always done... and yes, I'm really fast with it.
Funny that he should mention screen updates. GNU Emacs actually has a very good screen update algorithm. It is non-blocking (one can type commands while it is updating, e.g,, scroll multiple pages without waiting each page to be displayed completely) and generally makes good use of terminal control sequences. Quite usable over 1200 bps.
Study TECO first. Look at VI again.
Insert is then no longer a "mode". It is simply a command, terminated by ESC. In TECO, all commands are terminated by ESC (except for a limited number of "immediate" keys). In VI, i is terminated by ESC.
And, with this definition, VI is no longer modal. Also, some commands now make sense. To generate the
banner box: 80i*ESC makes sense: it is, after all, a command.
Just another "Cubible(sic) Joe" 2 17 3061
I have no problem with modal editors like vim, although in Linux I mainly use emacs because I know the keystrokes better.
That said, overtype mode is absolutely the worst and most destructive feature I have ever encountered in a program. It's also almost useless.
Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
I will take this opportunity to ask, concerning the localization of vi to other languages than english; is there some standard remapping you can use so common functions don't end up in difficult places. For instance, when looking through the basic help, you are supposed to press C-] to enter topics. On my keyboard this means pressing ctrl+alt gr+9. If I want to keep my right hand in its home position, I then need to press alt gr with my thumb upside-down, and I'm already a bit sore.
I guess basic commands are given simple to reach keystrokes, but localization messes this up. How do other non-english people deal with this?
...and I work at Microsoft.
Reinvent the wheel only at either a lower cost, greater effectiveness, or your own personal enrichment and satisfaction.
EMACS is a modal editor too. Both EMACS and Vi were written to run on character terminals. Any interactive editor designed for that environment has to be modal, because that's the only way to separate commands from input. EMACS, being designed for powerful terminals with very fast connections, can make text entry the primary mode and commands brief escapes from text entry mode. Vi, which was designed for cheap terminals connected to 30 characters-per-second connections (and was even used on 11 CPS connections), did things exactly the opposite.
And a note to the usual vi-versus-EMACS flamers: which one you use in a modern GUI environment is matter of what you're used to. They're both equally out of date: good GUI programs do not have modes. And I'm not speaking theoretically: I've used vi (or nowadays, vim) almost every working day for 27 years, and I still screw up cut-and-pastes occasionally because I forget which mode I left the vim window in.
So if I think modes are dumb, why don't I switch to a modeless editor? Well, I have jedit, and I keep meaning to try to make it my working editor. But there are always bigger priorities than retooling my brain's text editor zones. I might feel differently if Bram Moolenar and the other vimmers hadn't done such a good job of adapting vi to the GUI world. Speaking of which, no vim user should forget to express their gratitude.
In the strict sense inputing means straight forward typing, no backspace, no cursor movement no nothing, just text from left to right, all those other stuff is reserved for the edit-mode. That however is totally not how I or anybody I know works. I constantly jump around, insert a bit here, a bit there, go a few words forward or backwards, mark and delete a little here and there. Switching modes between each and every of these operations, which just take a few second or less, is totally annoying
:'b,'ed<Enter>
It's all in how your mind works. I have been using vi for about 23 years now, and I don't even think about it. I'm very happy and productive in vi.
Personally, I'd rather bang on the Esc key with a pinky once, and then be in edit mode, rather than having to mash the control key while typing Ctrl+X Ctrl+C or whatever. You don't have to agree with me; we can both run what we prefer, no big deal.
In short I simply don't get how to use Vi the Right Way[tm], since it works completly different then I work and think.
If true, then you shouldn't use vi. And that's okay.
I have never meet anybody who either could show or explain to me how to actually use Vi
I think of vi as the text editor equivalent of a set of Lego blocks. You have a few small commands, which "snap" together into bigger commands.
w moves forward a word.
dw deletes forward a word.
fi skips the cursor to the next 'i' character in a line.
dfi deletes forward to the next 'i' character in a line.
I totally love being able, in one step, to delete from the cursor to the next 'i' character. And what if there were two 'i' characters in the middle of the text I want to delete, before the final 'i' character I actually want to delete? Well, you can count them and use d3fi, or you could use dfi and then bang on the '.' key twice (the '.' repeats the last command).
There are basics: move forward word, move to end of line, etc.
There are shortcuts: move to end of line is $, so delete to end of line is d$, but since that's common you can just hit D.
There are advanced shortcuts.
And there is ex mode (available with the ':' key) if you want it too.
Begin able to delete the next 5 lines, sentences, paragraphs or whatever via a simple two letter command sounds nifty in theory, but I have yet to meet any real world example where that actually would be useful, I mean how am I supposed to know that it are exactly five lines and not six, or ten and not eleven? Am I supposed to count them by hand on the screen?
Well, if you want to. But usually I use the mark command: mb assigns mark 'b' to the current position. Then you can navigate to the end, and:
'b would return to the marked position called 'b'
d'b deletes back to the marked position called 'b'
Sometimes I mark beginning with mb, then mark end with me, then use the ex command:
If I can just look and see that I have, say, 3 lines to delete, I'll just bang out 3dd. But for longer ones, I use the marks.
Maybe its time for somebody to just place a camera above his shoulder and show some of the mighty power of Vi in real life and upload the result to Youtube,
Huh. Interesting idea. Maybe I'll do that sometime.
I'm fast with vi, and I doubt I'll ever be as fast in any other editor. I can chop out a block of code, move around, paste it in, shift it over, etc etc all without thinking about what I'm doing. My fingers understand vi, I don't think "3dd", I just think about the three lines going away and they do. It's wonderful. But I don't try to claim everyone would agree with me.
I had the displeasure of implementing vi editing in a Motif UI textline. It was like turning a snake inside out. The code is all state-driven with the call stack being the maintainer of state. Now try to imagine taking that logic and implementing in an event-driven UI. All that call-stack state had to be encapsulated. :-(
"No matter where you go, there you are." -- Buckaroo Banzai
No guarantees that function / cursor keys will be present on an ASCII terminal. If the application is written to be dependent upon such keys, then the application will be unusable on many terminals/emulations. An ASCII terminal will generally be able to generate all* ASCII characters - but no guarantees beyond that.
*some aren't able to generate that ASCII null character and/or the ASCII delete character
*Any* editor is better than the brain damaged vi. Even MS-DOS's "edit", pico, nano, gedit, and most other current editors. The only things worse than vi are ex, ed and the dreaded edlin. Emacs rules.
What are you supposed to do when you telnet into a machine and need to edit a file?
You should poke yourself in the eye with a sharp stick for using telnet instead of ssh.
I want to drag this out as long as possible. Bring me my protractor.
Someone who *isn't* on the latest, hottest machine that either their company, their college, or their parents with lots of disposible income would buy them.
We've seen WAAAAYYYY too much of the emacs-environment mindset in the industry, from #1, Bill the Gates, on down to the idiot who I tried to contact, a few years ago, who had four or five 1.5M-2M jpegs on *one* page on his Website. Far too few folks in management ever look at someone on dialup, or on the two or three generations old computers that most home users have. And if you doubt that, slashdotters, try asking your *NON* computer friends what they, or their kids, are running on, or what they have in city public schools, or....
mark
Tog's research is only part of the answer. When he's not sharing his insane conspiracy theories about traffic engineers, Tog tends to ignore parts of the problem that are inconvienent to his theories. In particular he tends to ignore expert users. If you're doing the same thing over and over again it ceases to be aboue spending "two seconds to decide upon which special-function key to press," it's muscle memory. Ever watch someone do bulk data entry on a mouse-less terminal? Once you learn to tab between fields it's extremely efficient. No moving your hands to mouse, locating the mouse pointer, and clicking on the next field. Type field, tab, type field, tab, type field, enter to submit. Conversely, whenever I've seen people use Tog's precious mouse in such interfaces I'm subjected to lots and lots of waiting while they type in a field, grab the mouse, locate the mouse pointer, click the next field, and move back to the keyboard.
The same goes for Ctrl+S. For Joe Random User who doesn't use a given piece of software very often, yes, shortcuts are indeed slower than mouse and menu. But for someware you use heavily and commands you use frequently it's faster. It's faster because Tog's core claim: that you're spending two seconds remembering what shortcut to use, is nonsense. You start thinking "I was to save" and before the thought is fully formed you've mashed Ctrl+S and gone on to the next task. Even with Tog's pet-UI designs like sticking menus at the top of the screen you've got to move to the mouse, slam it to the top, more carefully adjust it left and right to the menu you need, and carefully drag down to the specific item you want. Assuming you commit such a finicky procedure to muscle memory it's not possible to make it as fast.
If you've got good software and spend a lot of time using it, it should eventually become second nature; you move beyond thinking about which command you want for 90% of what you do.
If you can find them, watch someone really skilled at data entry whiz through form submission without a mouse. Check out a programmer really in touch with his editor of choice. I knew a man who knew Visual Studio's interface so well that he flew through it faster than I could have decided which menu I wanted.
Search 2010 Gen Con events
http://www.asktog.com/TOI/toi06KeyboardVMouse1.htm l
Another excerpt:
The key error of this study: assuming such comparison remains constant; there's a learning curve. As others noted, this was an article written in 1989, back when the mouse was a relative novelty, and computers were a novelty to almost everyone. The decision of which keys to press takes less and less time the more you use a particular function, much reminiscent of computer cache memory. The neural network of the human brain eventually learns that "paste" means press "<control-v>", and requires no more thought than pressing "p-r-e-s-s-i-n-g" does to type the word "pressing"... and less time. On the other hand, going up to the top menu to select "Edit -> Paste" also requires time... to shift cognitive attention, move the mouse into position, move it again, and shift cognitive attention back to the original focus. The minimum time for an experienced mouse user is always higher than that for an experienced keyboard user on such constantly-used tasks, especially for subjects with bad hand-eye coordination and/or ADD tendencies. That is, "geeks".
Not all strokes are for all folks. Most windows users will find it easier to select "Start -> Programs -> Accessories -> Command Prompt" than to type "<Windows-R>cmd<ENTER>", simply because of that time delay of remembering how it's done... if they've ever even heard of that trick. Because of heightened security awareness, most of the PC users I support now know that you can "lock" a WinXP system by <Windows-L>, and prefer it to the GUI approaches.
I'm pretty happy with things the way they are. Mostly, I use the Editor Of The Beast, since I learned ed back in elementary school over a 300 baud modem, and the transit to vi is relatively simple from there. (Nifty trivia: vi still supports much of the "s/foo/bar/g" syntax of ed.) Since I am less often having to edit C-code, and more often having to use a VT-102 emulated terminal session over dialup to VPN into a DSL connected machine focused on running bittorrent (I've seen 150 baud effective within the past year), vi makes more sense. For others who do more C++ than weird network maintenance, emacs is probably more sensible. For those doing word processing, Word (or Openoffice) is better choice than either.
Remember: There are nine and sixty ways of constructing tribal lays, And—every—single—one—of—them—is—right!
//Information does not want to be free; it wants to breed.
Actually it is bad, so bad that Microsoft and a bunch of other keyboard manufactures moved the 'Insert' key which switches between those modes and made it only available via weird Fn-Key combinations.
So that's why new keyboards are so f'd up.
Rather than change the hardware, Microsoft might have considered implementing the software-only solution of 'joe': insert key inserts a space character, but insert/overwrite mode is selected via the editor toggle settings. Then their keyboard remains standard but people don't get confused.
That explains a lot about his attitudes in many areas.
"Gift to mankind"? How about "curse to mankind"?
Send this man to a old folks home - with no Net access and no computers.
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
By newbies, I mean people who started learning Unix with Linux.
:-( Heck, I even had vi on the MacOS system 7.
I started with DTSS in 1980. I went through Apple ][, Zenith Z100 w/ MS-DOS 1.0, VMS, and various unixen.
DTSS had an ed editor, similar to the unix ed. DOS has edlin. The Apple ][ BASIC didn't have forward/backward. Just type and delete previous character. The Z100 had my college's WP, Galahad. VMS had EDT.
In the case of DTSS, VMS and the various unixen had various terminals. Teletype, decwriters, CRT based w/ VT100, GIGI, Tektronix, etc. When you ran across a 300 baud or 1200 baud line, you appreciated having something better then ed that was still faster. Emacs? Eight Megabytes And Constantly Swapping in an era of 1MB time shared machines.
The nice thing about vi was that it was usually available and your keystrokes worked on any terminal whether it had cursor keys or not. I ran vi on DOS on an 8088. Emacs didn't run w/o a 386 and > 4MB
(defun religious-sacrifice () (interactive) (mapc (lambda (x) (shell-command (concat "rm " x)) (message "All hail Emacs!!!")) (cdr (split-string (shell-command-to-string "whereis vi")))))