The comment from lutusp was deleted before I finished composing my reply, but since I went to so much work (five minutes) finding the relevant evidence to refute him I'll repost it:

---

lutusp 2 minutes ago | link

> You repeatedly claim that vi is lame because it has to work with keyboards with no control keys.
What? "vi is lame because it has to work with keyboards with no control keys"? I never said that anywhere. You will now try to find your source for this lie, then you will apologize for lying.
For God's sake -- how can you people expect to have useful conversations while making stuff up?
If you had said, "I think I heard you say..." or something like that, I would cut you some slack for being stupid and irresponsible, but not under these circumstances.
FIND THE QUOTE. THEN, REALIZING THAT IT DOES NOT EXIST, APOLOGIZE.
I won't hold my breath for you to accept adult responsibilities.

---

OK, I'll take the troll bait. You wrote: "I never said that [vi is lame because it has to work with keyboards with no control keys] anywhere. You will now try to find your source for this lie, then you will apologize for lying."

I'm not going to apologize to you for anything, and you show yourself to be quite a jerk telling me that I will apologize for pointing out your factual errors. You don't even bother to address the facts I posted. But showing you where you wrote what you claim you never wrote is easy. You can find all of these quotes in your own comments:

* "The reason? vi must be able to work with a keyboard that doesn't have any control keys..."

* "... the control scheme in vi and vim arises from the requirement that it avoid the use of control keys. That was a design requirement, because the original machines it was designed for did not have control or navigation keys. How do I know this? I used those computers, and I used the early versions of the programs under discussion."

* "And do you know why this arrangement exists? Because there were teletype terminals and early glass terminals that didn't have control keys. No control keys, no way to exploit their existence."

* "I wrote an incremental improvement over vi, one that exploited the existence of control keys..." [Implying that vi did not or could not use the control keys, which didn't exist back then anyway according to you.]

* "It's false when comparing mouse use against a modern keyboard with control and function keys, and it is certainly false for the limited keyboards for which vi/vim was designed, those keyboards that result in vi/vim not being able to exploit control characters."

* "Having to enter additional keystrokes, a throwback to a computer keyboard that either didn't have control keys or couldn't exploit them, makes editing 'faster and more powerful'? Nice reasoning."

* "Vim still imitates vi, and vi still imitates 1970. Extremely inefficient, steep learning curve in order not to press readily available control keys."

* "As soon as someone invented the control key and its purpose, and well before Douglas Engelbart invented the mouse, the retirement clock started ticking for vi and vim." [I guess not since vim is installed on all Unix and Linux distros and comes with OSX].

I provided links showing the ADM-3A and Teletype Model 33 keyboard layouts -- both with control keys. And that was the standard keyboard layout back then. Show me a terminal that was in widespread use when vi came out in 1976 that didn't have a control key. Not that it really matters if you find some weird example, because vi was specifically designed for the ADM-3A and similar terminals available in 1976 that had control keys. That's from Bill Joy.

Your repeated claims that vi was designed for paper terminals, or that vi is derived from ed (rather than the reality that vi incorporated ed) are contradicted by knowledge of vi but also by the authors of vi. You wrote:

* "vi, which had to be able operate with a 'paper terminal', essentially a roll of paper as a display..."

* "I can say this in vi/vim's favor: it's a step up from ed, its predecessor."

Both obviously false.