Hacker News new | ask | show | jobs
by _cwpi 339 days ago
I'm totally fine with (re)learning new tools, but having given Helix a solid try found the noun-verb model worse; the visual feedback is fun but distracting, particularly when you're moving around reading code. For it you give up things like repeating edits easily (bound as '.' in Vim). There's also a statefulness to Helix's model that isn't present in Vim; whereas in the latter I only have to care about where I _am_ in the file as I'm making my edit, in Helix I have to care about where I've _been_ because that dictates what I've currently got selected. See my other comment for details.

I want an editor with OOTB configuration and a modal editing paradigm (probably Vim's) that isn't constructed around visually synchronizing every edit action. Doing the latter means relinquishing what's good about an editing language, which is that you needn't actively think about edits so much. It's not about speed, but freeing up mental resources to think about the more interesting programming tasks at hand. Editors that demand more attention are doing a worse job.

1 comments

surprised helix doesn't support the . key - is that incompatible with its interaction model somehow?
Yes, its model is that you make a selection and then act on it. After the action happens there's nothing selected. The editor can't infer your intent in making the selection, so there's no reasonable notion of repeating the last edit. You can separately repeat the last motion or last action, but not the whole edit---which of course isn't as useful.

Helix would _ideally_ like you to tell it ahead-of-time everywhere you're going to make an edit by selecting all the edit points with multiple cursors, without a great option to fire edits on the fly. Ironically I found this worse for visual feedback when making larger edits---where it's most needed---because there are usually edits happening off screen, instead of only at the point of the cursor (where the latter can be easily repeated).

It ends up feeling less interactive and more like I'm using a batch editor due to this, which (I think?) was not its intention.

In that situation, what I do is essentially save a macro (recording the selection and the edit) with `Q` and then `q` becomes my equivalent to `.`
Good note; there's almost always a (somewhat less convenient) workaround. I find the visual feedback that induces these compromises actively annoying, so don't want to give up anything for it. Different strokes, of course!
Hmm
The existence of a repeat or “magic” key is one of the more interesting developments alternative keyboard layouts designs. The use case is slightly different of course.

But as an extremely heavy user of vim repeat and macros for the last two decades, it strikes me as a wee bit audacious to so completely dismiss its utility.