Live data from Hacker News

Why I teach vim

blog.ceos.io

31–40 of 185 posts

Re: Why I teach vim

#31
post #14

Earlier quoted context omitted.

They're not really the same thing, compared to vi[m], emacs is statistically dead. And there are already lots of people who're well into their careers in academia and industry who aren't users of either. My own contrarian and probably equally wrong take is that it's mostly about accepting the (evidence-free) premise that modal editing is actually a good thing. It's hard, you suffer but lots of smart people tell you i…

The "suffering" has honestly been overblown by jokes about not being able to quit on one side and the mythologizing of the leet ninja 10x programmer who is only bound by his typing speed and can't waste time reaching for the mouse, on the other side. It continues to surprise me why people have such strong opinions about someone else's editor choice. My current theory is vim users are like vegans/gluten free/paleo/etc…

people have such strong opinions about someone else's editor choice.

I want to reiterate that I'm merely pursuing an intellectually curious line of inquiry into whether modal editing enthusiasts are brainworm-infested cultists, not engaging in base mudwrestling about editors, which the guidelines forbid.

Re: Why I teach vim

#32
post #30

Earlier quoted context omitted.

The "suffering" has honestly been overblown by jokes about not being able to quit on one side and the mythologizing of the leet ninja 10x programmer who is only bound by his typing speed and can't waste time reaching for the mouse, on the other side. It continues to surprise me why people have such strong opinions about someone else's editor choice. My current theory is vim users are like vegans/gluten free/paleo/etc…

> It continues to surprise me why people have such strong opinions about someone else's editor choice. I think because people identify themselves too much with their editor, programming language or whatever else choice. Everyone wants to think of themselves as the smart ones, only making objective rational choices, so everyone else making other choices has to be stupid. If now someone criticises their choice or argue…

Yeah, I guess that is it. The existence of the vegan is a moral judgement of everyone else's food choices, so they get hate. The existence of the vim user reminds you of that one time you gave it a shot and it didn't stick, so it makes you feel attacked the same way.

Re: Why I teach vim

#33

> I always tell my students that the one editor they are likely to find already installed on a machine is vim Well, vi, since it's part of POSIX. Unless you are fine with ed ;)

Back at Uni I used joe because I was used to WordStar (DOS).

On one of my early jobs I had to telnet to an AIX machine to do some work and, of course, joe was not installed and vi was.

I had almost no idea on how to use it, and by the end of that project I had decided that I needed some vi skills!

Re: Why I teach vim

#34
post #30

Earlier quoted context omitted.

The "suffering" has honestly been overblown by jokes about not being able to quit on one side and the mythologizing of the leet ninja 10x programmer who is only bound by his typing speed and can't waste time reaching for the mouse, on the other side. It continues to surprise me why people have such strong opinions about someone else's editor choice. My current theory is vim users are like vegans/gluten free/paleo/etc…

> It continues to surprise me why people have such strong opinions about someone else's editor choice. I think because people identify themselves too much with their editor, programming language or whatever else choice. Everyone wants to think of themselves as the smart ones, only making objective rational choices, so everyone else making other choices has to be stupid. If now someone criticises their choice or argue…

An alternative take, definitely worth a read: https://www.gwern.net/Holy-wars

Re: Why I teach vim

#35
post #31

Earlier quoted context omitted.

The "suffering" has honestly been overblown by jokes about not being able to quit on one side and the mythologizing of the leet ninja 10x programmer who is only bound by his typing speed and can't waste time reaching for the mouse, on the other side. It continues to surprise me why people have such strong opinions about someone else's editor choice. My current theory is vim users are like vegans/gluten free/paleo/etc…

people have such strong opinions about someone else's editor choice. I want to reiterate that I'm merely pursuing an intellectually curious line of inquiry into whether modal editing enthusiasts are brainworm-infested cultists, not engaging in base mudwrestling about editors, which the guidelines forbid.

I want to reiterate that I'm merely pursuing an intellectually curious line of inquiry into whether modal editing enthusiasts are brainworm-infested cultists, not engaging in base mudwrestling about editors, which the guidelines forbid.

Absolutely.

I am not wedded to my editor, I happen to prefer Emacs, if it’s not installed I shrug and use cat and sed. The older more experienced people at my company tend to use vi or Emacs. The younger ones use VS Code, PyCharm, Sublime etc. And they spend an awful lot of time on chat asking “how do I do this simple thing in my editor??” that you simply don’t see from the Emacs/vi crowd.

Re: Why I teach vim

#36

> I always tell my students that the one editor they are likely to find already installed on a machine is vim Well, vi, since it's part of POSIX. Unless you are fine with ed ;)

In many (most?) modern distros, vi is a symlink to vim.

I think all BSDs (net, free, open, dragon fly) use honest-to-goodness nvi[0]. Of course vim is available as an installable 3rd party piece of software.

[0] https://en.wikipedia.org/wiki/Nvi

Re: Why I teach vim

#37
post #5

Earlier quoted context omitted.

I'm not sure about the specifics, but providing something a lot more "batteries-included" seems to be the idea behind Emacs distributions like Spacemacs and Doom Emacs. One difficulty is that language-specific tools (language servers, linters... etc) are standalone pieces of software with their own dependencies, requirements... etc. It's hard to bundle together a fully "batteries-included" Emacs without figuring out…

I'm positive some sadist somewhere in this world has all the software on their OS as a nix expression. I'm also positive that at least one of these people has a fully featured emacs IDE and all the required dependencies as part of that expression. Totally down to try it if anyone has it. One thing good about just standalone vim though is how portable it is. I can ssh into any server and fire it up. I also want this f…

Oh yeah, I am one of those people myself[1] :). But my setup is quirky and hard to customize. (Well, hard to customize for other people, anyway.)

Nix had a learning curve, but once I got over the initial hump, I stopped wanting to manage software any other way.

To get from my setup to what I'm thinking of here, I'd need to organize it as a package that's convenient for others to depend on, fill in a bunch of missing systems and factor out support for specific languages and tools into some kind of module-style config system. Thinking about it now, it's probably just a few days' worth of work.

Emacs, by the way, does work as an SSH client (via TRAMP). I do all my work on remote servers by SSHing from a local Emacs. It's not perfect, but it works well enough in practice that I haven't tried finding anything better.

[1]: https://github.com/tikhonjelvis/dotfiles

Re: Why I teach vim

#38
Why I started to use Vim 5 years ago. I was coding a lot and I realised most of my work was editing code as text. So I figured, why not become really freaking good at it? Vim has a steep learning curve because it's a mental paradigm shift. I personally would recommend it to everyone because although no-code is taking off, most of the developers are still editing text. Sharpen that saw!

Re: Why I teach vim

#39
post #7
post #5

Earlier quoted context omitted.

I'm not sure about the specifics, but providing something a lot more "batteries-included" seems to be the idea behind Emacs distributions like Spacemacs and Doom Emacs. One difficulty is that language-specific tools (language servers, linters... etc) are standalone pieces of software with their own dependencies, requirements... etc. It's hard to bundle together a fully "batteries-included" Emacs without figuring out…

Emacs mostly has problems with external language servers because its plugin model is archaic and brittle to a large extent compared to that of say VS Code. It's also far more flexible but with power comes responsibility, and I've found Emacs extensions far more likely to interfere with each other than in less composable editors. You don't need Nix to fix this problem.

Nix would help pull in the right versions of all the external non-Emacs packages you would need for a real IDE experience. Almost all the issues I've had with Emacs plugins have boiled down to poor interactions between Emacs and external software (wrong versions, wrong paths... etc), and Nix could fix basically all of it.

As a bonus, using Nix to manage Emacs dependencies would also give me full control over exactly which version of each package to pull in. This would create much more of a "distro" experience without needing any extra infrastructure.

Re: Why I teach vim

#40

I really wish there was a batteries included vim-like console editor with all the power of the jet brains suite of IDEs and convenience and lightness of vim. As it stands right now I end up using both an IDE and vim. Maybe emacs is the answer but honestly if I look past all the yak-shaving to get emacs to the power level of an IDE does it really get to the point where it has everything that say CLion has?

does it really get to the point where it has everything that say CLion has?

No, it doesn't. There are probably other reasons to try emacs but 'as capable as a JetBrains IDE' is not among them.

As it stands right now I end up using both an IDE and vim.

If you think of it not in terms of text editing but as "tool that operates on files" and "tool that operates on 'projects'", it makes more sense that many (most?) people end up doing something like this.

Post reply on HN