Notes on switching to Helix from vim

Notes on switching to Helix from vim

Julia Evans

I haven’t blogged for a while and I forgot how internet commenters can get bizarrely angry about statements like “I got tired of managing my vim config so I decided to stop using vim for now”, as if it’s some kind of attack on vim (or on them??)

It makes me really appreciate @grimalkina’s work on developer culture, like this https://osf.io/preprints/psyarxiv/2gej5_v2

I still have a lot to learn but her work has helped me start to understand where this stuff comes from

(I used vim for a long time and I love it!)

OSF

@b0rk @grimalkina I was astonished when I said in a talk that the C++ macro feature was bad and people got mad at me. I thought it was self-evident and that even big fans of C++ would agree with me that the macro system was one of the worst parts of the language.

Instead they just got angry.

@b0rk @grimalkina A while back I was helping my kid with her CS class homework and sent her a followup email observing:

“You lost a lot of time and energy dealing with issues like: Using vim; copying files back and forth with scp; losing the network connection; the college shared machine is slow and yucky.”

“It's important to remove as much friction as possible from your basic process. Otherwise it's like trying to cook with dull knives and rusty pots, except worse because it interrupts your train of thought. You can't do good work with bad tools.”

“When you start the next project, start it in VScode in the beginning. And maybe set aside an hour or two before you start in earnest, just to go through the VSCode tutorial and familiarize yourself with its basic features, without trying to do that at the same time you are actually thinking about your homework. This will pay off quickly.”

Then I published the letter on my blog and boy oh boy did I get a lot of hate from the vim fans.

But the simple fact was, she lost a lot of time and energy dealing with vim.

@mjd it's easier for me to understand your post getting hate than @b0rk's.

Yours really does read as if you're saying vim is an objectively bad tool. First, you're making that recommendation to someone other than yourself in the first place. But also you make _separate_ recommendations to (a) spend an hour learning the editor before you're also trying to write code at the same time, and (b) use something other than vim. That definitely sounds to me like "the problem is not just that you hadn't learned vim in advance, the problem is also vim itself".

Whereas @b0rk really did just say "this is my preference", and not even that, more like "I'm trying out this thing to _see_ if it's my preference". If the hate-mail from vim fans had come to you but not her, that would have made perfect sense to me!

That said, I do agree that vi-type editors in general are a strange choice for a new user. It used to surprise me whenever I saw a novice choose vim, until I realised that gvim makes it easy to ignore the scary parts (https://hachyderm.io/@simontatham/114177885089067364). But then I'm also not a vim user myself, so perhaps the vim diehards would consider that my opinion still doesn't count :-)

Simon Tatham (@[email protected])

@[email protected] I had a colleague a few years ago (not 20 or 30) who I was surprised to find used gvim, because they didn't otherwise seem like the kind of person who would do anything in an extra-complicated way if they didn't have to. But after watching them use it for a while, I realised that you can (and they did) use gvim just like a normal GUI text editor, by never pressing Escape so that it stays in insert mode all the time, and using the GUI toolbar for any editing action more complicated than the arrow keys or PgUp/PgDn/Home/End. You can treat it as not very different from Notepad … except that when a vim-using colleague comes over to help, they can use all the extra power to do magic. I suspect someone had recommended it to my colleague on that basis. And then you can learn the magic yourself, at your own pace, as and when you have spare time and someone to show you a trick. This week it's Notepad; next week it's Notepad except that you know two or three magic spells of the form ESC + mystic incantation + i which cause something powerful to happen; maybe next year you start learning to craft your own spells. So my theory is that gvim is the gateway drug to the hardcore 'use keyboard command mode most of the time' style of vim.

Hachyderm.io

@simontatham @b0rk True! Vim hadn't worked well for her, we tried VS Code, and that worked better. It is easy to read my post as general advice to everyone, and many people did this, but it wasn't, it was only advice to one person in one circumstance.

I titled the blog article “Advice to a novice programmer.” Not “Advice to novice programmers.” But I understand that many people took it as the latter.

@simontatham @b0rk I also must admit that I did not simply say that the C++ macro system was bad, I said that it blows goat dick. I have learned since then that my specific phrasing can have a large effect on how people respond to my ideas.
@mjd @simontatham @b0rk honestly, I think you were too kind to it.

@mjd @b0rk advice to one person _which you then chose to republish to the whole world_ surely comes with at least some kind of implicit "... and I think this is likely to be helpful advice for other people too"!

And rightly so – I happen to remember that particular blog post of yours well, because I've cited it to novice programmers myself. (But usually I'm referring to other parts of it, not the choice of editor.)

@simontatham @mjd @b0rk In context, I read the advice about editors as "don't burn cycles on figuring out a notoriously complex and unintuitive power tool when you're on a deadline and there's an easier alternative available" rather than "vim sux". But alas, people.

@pozorvlak @simontatham @b0rk Now there's a *great* application for the LLM: “Hey, Claude, vim is confusing for me, what could I use instead?”

And it will provide three or four suggestions, short, accurate descriptions, and a followup question asking you to say what qualities you are looking for.

Then you can talk it over and its recommendation will be as good as anyone's.