Live data from Hacker News

Bill Joy's greatest gift to man – the vi editor (2003)

theregister.co.uk

141–150 of 186 posts

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#141
post #98

For those who do not understand why people are fanatical about vi, here are some reasons: Vi is keyboard only. This means that actions with the mouse are optimized through the keyboard. There are "hotkeys" for most tasks you use with a mouse. Vi has the idea of objects. Words, lines and paragraphs are objects you can operate on. Vi defines a "language" for operating on objects. For instance, 'd' is delete. You can de…

"This is especially important if you have to edit a file on a remote server" This may have been true a decade ago, but editors like Visual studio code now have remote editing abilities over SSH. I regularly have 50+ files open at a time for editing/compiling and I've never found editors like VI very helpful. If I need to make a quick edit to a config file, it does the job.

You are right that it is not as necessary as before but there are still plenty of times where vi was still the faster option. Since Vi is so lightweight, opening large files remotely might be useful vs vscode remote ssh.

But yea vscode remote is really good.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#142
post #91

Vi is the ultimate example of software that is "easy to use" as opposed to "easy to learn", it is great that we still have Vi and so many other unix tools that use the same philosophy. One of the biggest things that has happened to computer software in modern times is the balance between "easy to use" and "easy to learn" has shifted dramatically towards "easy to learn". There is some software that can achieve both at…

I agree. While vi has an unusually steep learning curve among software, I think of it sometimes when I design user interfaces. Design with the 2-week user in mind, not the first-time user. What I would call fraidy-cat designers work themselves into a tizzy asking themselves, yes, but will users like it or understand it the first time they see it? I encourage people to instead be a bit bold and ask, will the user grow…

fwiw, I totally agree with everything you've written, and take it in good faith.

I've heard the words "power tool" and "platform" used to describe what you're talking about. The best tools have a simple core with many silos, but those silos are highly-configurable and composable. You can call it UNIX-philosophy, but it's evidently existed in other domains (carpentry, baking, "interchangeable parts" in manufacturing) for a very long time.

I don't think there's a lot of software written this way. Vi, Excel, UNIX pipes, functional programming languages, regular expressions, GNU ledger, Redis come to mind.

Not a lot of consumer software fits this description, that I can think of.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#143
post #108
post #98

Earlier quoted context omitted.

"This is especially important if you have to edit a file on a remote server" This may have been true a decade ago, but editors like Visual studio code now have remote editing abilities over SSH. I regularly have 50+ files open at a time for editing/compiling and I've never found editors like VI very helpful. If I need to make a quick edit to a config file, it does the job.

Something that I always find lacking in these discussions is that the VIM evangelists never mention the way that I use vim: strictly as a keyboard-only editor plugin. I tried using vim-only setups but there's so much configuring and weird things. Nothing to me has worked as great as my current VSCode + Vim plugin setup. It's the best of both worlds, as I get the quite frankly absurd speed improvements of VIM while al…

VSCode is great and has a lot of advantages. I still use vim in a terminal because of tmux. Unfortunately that means I have to give up some of vscode's advantages.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#144
post #84

For those who do not understand why people are fanatical about vi, here are some reasons: Vi is keyboard only. This means that actions with the mouse are optimized through the keyboard. There are "hotkeys" for most tasks you use with a mouse. Vi has the idea of objects. Words, lines and paragraphs are objects you can operate on. Vi defines a "language" for operating on objects. For instance, 'd' is delete. You can de…

What I observe is that most vim fans who swear by it use it as a bare bones editor, syntax highlighting at most. No auto-completion, go to definition or any other IDE stuff. Yes, it is possible to make vim IDE-like but very few do so.

Yea the dark side of Vim is that it is at best IDE light. With coc, it has gotten better but still far behind vscode.

It is a trade off I gladly accept to use vim and tmux. Aside from that, vim plugin for vscode is pretty good for doing pair programming with the team.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#145
post #94
post #84

Earlier quoted context omitted.

What I observe is that most vim fans who swear by it use it as a bare bones editor, syntax highlighting at most. No auto-completion, go to definition or any other IDE stuff. Yes, it is possible to make vim IDE-like but very few do so.

The existence of "modes" is also opposite to the approach which is know for decades to be less prone to accidental errors: having no modes and always being able to perform more undo steps. There were even the games of considering what plain text typed in wrong mode would cause the most of the damage. The main reason Vim and Emacs have their current followers is that the competing editors on Linux or Unix platforms ar…

The power that vim has out of the box is pretty incredible. The macro system is very easy to use and powerful.

That said, it is hard to learn all these features and modern GUI IDEs are pretty amazing. You can still use vi in many of these editors.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#146

For those who do not understand why people are fanatical about vi, here are some reasons: Vi is keyboard only. This means that actions with the mouse are optimized through the keyboard. There are "hotkeys" for most tasks you use with a mouse. Vi has the idea of objects. Words, lines and paragraphs are objects you can operate on. Vi defines a "language" for operating on objects. For instance, 'd' is delete. You can de…

Many of those features are Vim features and not Vi correct?

Yes. I believe vim and neovim is what most people use these days.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#147
post #44

"Among Joy's list of achievements are BSD Unix, NFS, UltraSPARC designs and some work on Java" - not to mention Berkley Sockets. But his greatest gift to man was vi? I think not! Full disclosure: I'm an "emacs guy" but I don't care about the silly old emacs/vi wars. I would just say as awesome as people find vi to be, it's among the least of Bill's accomplishments. That's how awesome he is!

I don't know how much he was involved in the "3M" model that Sun pushed, but that was pretty big too: 1 Megabyte of memory, 1 megapixels on the screen, 1 Megabyte/sec network connection. All seems like nothing now, but at the time of the early Sun workstations, that was the definition of a high end machine.

I think more people should shoot for something like that.

I remember when tesla first created it's electric cars and they put these huge expensive batteries in them.

Other cars required an engineering degree to figure out how to get across town and back, and tesla had these cars that freed up your mind and let you drive. and then they could build on that with the supercharger network.

Eventually the range went up and the battery cost went down and the future was the present.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#148

Earlier quoted context omitted.

My guess is that you ended up on a machine that has the default editor as vi. TO fix this, set your shell's EDITOR env variable to something like nano. I agree that VI's default is so different from the modern editor that it's very frustrating to get stuck in it. However, learning vi pays dividends.

I tried setting the editor to TextEdit app path. That didn’t work. I also tried Sublime, which also didn’t work. Setting the editor is really a 3 step process. Add application to PATH. Create an alias. Specify the alias. VSCode has a command to do steps 1 and 2 for you. My next weekend project is to learn Vi. (Any tutorial suggestions?) I don’t want to. But I have to. Smartphones are so intuitive toddlers can use the…

Use vim adventures to learn. It will take the pain out of learning and will make you proficient in about a day.

After that, force yourself to use it. Install vim plugin in vscode. In about 2 weeks, you will wonder why you didn't learn it sooner.

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#149
I think vi is good. I think the modal editing is good. The ZZT external editor I wrote (ZZTQED, and later frezed) is inspired by features of vi, such as modal editing, numeric prefixes, macros, etc. It is also good that vi has the ability to interact with external programs by pipes, which is something that Heirloom-mailx also does and I like that, and my own NNTP client software (bystand) also does, but unfortunately the web browser doesn't (the web browser is one of the worst software). One problem with many newer programs is lack of good documentation as well as using mouse-based interface; I like to make most functions working by keyboard commands. A lot of existing software I don't like so much, so I try to write my own better ones, which can use pipes with external programs, using mostly keyboard-based interface rather than by the mouse, using UNIX philosophy, using you have enough ropes to hang yourself and also a few more just in case, etc, to do what I will think is a good idea to do. And yet, it isn't just a lot of computer software that is badly designed these days, but even user interfaces of VCRs, DVD recorders, etc. I don't really like MSE so much, so I wrote TeXnicard. I don't really like most NNTP software so much, so I wrote bystand. I don't like KevEdit so much, so I wrote ZZTQED. I don't like Inform so much, so I wrote Glasm. etc

Re: Bill Joy's greatest gift to man – the vi editor (2003)

#150

Earlier quoted context omitted.

>4) Emacs had packages that would emulate vim It's terribly inefficient for emacs vi emulation mode to actually quit emacs when you type ":q", because it takes much longer for emacs to start up than vi, and people use a long-running emacs a lot differently than they use disposable vi's. UniPress Emacs's vi emulation mode would actually flip you over to an emacs shell buffer when you typed :q, and the shell would reco…

"it takes much longer for emacs to start up than vi" This is false on pretty much any modern system. They start up in about the same amount of time. Using lots of packages (in both vim and Emacs) will slow down startup speed, but there are tricks to speed that up too (like by defering actual loading of them until they're needed). Also, most people who run Emacs just keep it running all the time, and almost never quit…

It was true of UniPress Emacs, running on a 4 meg Sun 3/50. It's been a long time since UniPress sold any version of Emacs.
Post reply on HN