Live data from Hacker News

Understanding the Origins and the Evolution of Vi and Vim

pikuma.com

121–128 of 128 posts

Re: Understanding the Origins and the Evolution of Vi and Vim

#121
post #6

It's incredible how good of a design Vi is. Try this experiment: Busybox includes a tiny clone of vi with a reduced feature set. It's very stripped down when compared to Vim or even other vi clones, but as a pure text editor it's still more powerful than most modern day IDEs . I love my Jetbrains IDEs, but you can take my Vim plugin from my cold dead hands :)

I would say it’s incredible to see the quality and “durability” of Linux/Unix tools. The other day I wondered “how old is grep”, looked it up and realized that I use a piece of software that’s over 50 years old on a daily basis. The fact that these tools have stood the extreme test of time is really something.

Back in '94 I remember motherfsking some paper I was writing late at night in the computer lab. I think the wordprocessor was AmiPro, and it was giving me grief to the extent that I was at the point of violence.

Another person in the lab came over, invited me to his machine and showed me LaTeX in Emacs. We became friends (he a mathematician, I a zoologist). I bought beer; he brought 'computer wisdom'. Thirty-odd years later, those files are still perfectly reproducible. All of my kid's school reports from elementary onwards... LaTeX.

It's hard to overstress how important is longevity in a toolset.

Side rant on Emacs' keybinds: with orderless and vertico (and marginalia and whichkey) it is almost as fast for me to `M-x dir` as to `C-x d`, and in both cases I get a dired buffer. Aaand, `dired` is magic. History also tells me that it is older than Emacs.

\end{rant}

Re: Understanding the Origins and the Evolution of Vi and Vim

#122

Vim is awesome! For my hobby project, Vimgolf.ai , I am trying to make it easier and more fun to learn vim by being gradually introduced to the different motions. I am eventually trying to create different bots to create a standard of difficulty for each level but that is TBD at the moment.

That's fantastic, well done!

Is the "Controlled Neovim Terminal" supposed to be some bot you are competing with? At first it confused me. Personally I think the first contact with the game would be much more intuitive without it (it can always be introduced later, e.g. if you plan competitions with other humans on randomly generated levels).

There are only two levels now, right? As I equaled both top scores (possibly optimal?)... when more? ;)

Re: Understanding the Origins and the Evolution of Vi and Vim

#123

Earlier quoted context omitted.

Here's that TECO macro (have fun!): [4 [5 [6 [7 [8 [9 +0U7 0,0X4 10U4 [4 ETU4 [4 EDU4 [4 EUU4 [4 ^D ET&(128#64#32#1^_)#512#16#8#2ET ED"G 0ED ' @^U5/U9 ET#1ET 27^T Q9^T ET&(1^_)ET/ @^U6/.U8 ZU4 -3U6 ^^HM5 13^T ^^KM5 10^T ^^KM5 13^T :G4 10^T 13^T :G4 Q4,ZT ' ' ' Q7-27"E ^TU7 Q7-27"E !F0! 27@I%% Q4,ZX4 ^^HM5 13^T -1U7 0; ' Q7-^^?"E ^T^[ @O!F0! ' @O!F! ' > Q4,ZK Q8J Q7/ 0,0X7 G_ ^YX8 ^YK 0,0X9 ^^HM5 13^T ^^=M5 @O!A! ' Q7…

That has a texture reminiscent of the J/k family.

I love this use of texture; will steal ;)

Re: Understanding the Origins and the Evolution of Vi and Vim

#125
post #91

Earlier quoted context omitted.

Now you've got me digging through archives, I've got all the homework assignments stored. I need to find someone with an exabyte tape reader...

If you do find someone I’d love to hear more as well.

I found part of my homework assignments, some printouts. I'd forgotten the big reveal at the end of the class. If all the homework assignments were done correctly, a makefile given out as the class ended, "a surprise gift", turned all the homework in a subset of a C compiler.

The class's TD was also very interesting. He was 13, a child prodigy in their CS PhD program. I remember when I learned his age, he told me not to tell anyone, it would impact their ability to learn from him.

Re: Understanding the Origins and the Evolution of Vi and Vim

#126
post #91

Earlier quoted context omitted.

If you do find someone I’d love to hear more as well.

I found part of my homework assignments, some printouts. I'd forgotten the big reveal at the end of the class. If all the homework assignments were done correctly, a makefile given out as the class ended, "a surprise gift", turned all the homework in a subset of a C compiler. The class's TD was also very interesting. He was 13, a child prodigy in their CS PhD program. I remember when I learned his age, he told me not…

> C compiler

Nice. So were the HWs split along the usual lines of lexer, parser, codegen, etc? You said it was a surprise, so I wonder how else it was split to actually make it surprising. Or was it hard enough to judge the purpose of the assembly version that it didn't matter?

Re: Understanding the Origins and the Evolution of Vi and Vim

#127

Earlier quoted context omitted.

I found part of my homework assignments, some printouts. I'd forgotten the big reveal at the end of the class. If all the homework assignments were done correctly, a makefile given out as the class ended, "a surprise gift", turned all the homework in a subset of a C compiler. The class's TD was also very interesting. He was 13, a child prodigy in their CS PhD program. I remember when I learned his age, he told me not…

> C compiler Nice. So were the HWs split along the usual lines of lexer, parser, codegen, etc? You said it was a surprise, so I wonder how else it was split to actually make it surprising. Or was it hard enough to judge the purpose of the assembly version that it didn't matter?

I remember we were not given names for the pieces and parts, just these paragraph or three descriptions of what the written code would receive and what it would output, and what CS fundamentals we should use in that assignment. A good portion of the class's difficulty was in these weird assignments with these really weird I/O requirements. It was explained that companies that work in assembly are often working on DoD contracts, and these were the nature of one's work assignments: obtuse I/O requirements with no idea what they plug into or are used for... clever indirection.

Re: Understanding the Origins and the Evolution of Vi and Vim

#128
post #29

Earlier quoted context omitted.

TECO was just a DEC line editor, not entirely unlike ed/ex. The idea of TECO managing a display terminal (i.e. the environment in which emacs was written as a bunch of macros) came much later, and really only existed at MIT. Glass TTY terminals were very new in the early 70's. TECO was primarily written to the "Knight TV" system, which was a fancy MMIO framebuffer array hooked up to a PDP-10 that would multiplex a bu…

I started with TECO (Text Editor Character Oriented) on Caltech's PDP-10 back in 1975. There were no glass ttys, just DECwriters and ASR-33s (ugh). I.e. TECO was a line editor. A couple years later, ADM-3A's arrived. And so did a TECO macro that turned TECO into a screen editor! Oh, what joy! Isn't it a amazing that a macro could turn a line editor into a screen editor? I also used TECO on my H-11 PDP-11 computer.

TECO has commands that support line editing—like 0T and T, but they both are required to type a whole line—but it is a character editor; you can delete characters from the middle of one line to the middle of the next, if you know the character positions; line editors can't do that. another example, the buffering window that you are editing within is not line aligned.
Post reply on HN