What does HackerNews think of helix-vim?

A Vim-like configuration for Helix

#27 in Vim
I really enjoy Helix. The toml configuration and built-in Treesitter and LSP support are stellar. It works well enough to be a daily driver.

But after 20 years of Vim muscle memory, I can't deal with the keybindings. Not that they're inherently worse, just different - I'm perfectly happy with vim motions and relearning to type is pretty low on my list of priorities. Luckily there is a compatibility hack, not perfect but it's close enough: https://github.com/LGUG2Z/helix-vim

I want to like Helix, I really, really want to. It's lean, fast, polished, purely console based so it fits my workflows perfectly... but the almost-like-vim-but-not-really key bindings are a deal breaker. I just can't make the switch.

If Helix were completely different in this regard, like Emacs is, I could handle--and I know because I use both vim and Emacs regularly pretty fluently. But Helix is way too close to the vim keybindings to discern it from a memory muscle perspective. I use vim keybindings everywhere else (zsh, all readline-based apps via a setting in ~/.inputrc, VSCode), so getting used to slight differences in just one editor is extremely hard because I can't just drop all other apps.

I recently tried this: https://github.com/LGUG2Z/helix-vim which attempts to provide vim mappings to Helix. It's funny how the description in the page describes my progression almost 100%. And while it makes things slightly better, it's still not accurate enough to make this a non-issue.

There is this configuration: https://github.com/LGUG2Z/helix-vim

This switches most keybinds to be vi-like.

There's this config you might like: https://github.com/LGUG2Z/helix-vim

We can't invert the bindings though (wd -> dw) because that would require a big internal change to add operator pending mode:

When you press `d` in vim, that enters the operator pending mode, where it will wait for an object to be specified, in this case `w` and then delete it.

In a selection first model, `d` is very simple: it just always deletes the selection. So you select a word, then delete.