So apparently there are two editors inspired by vim, but built from the ground up (as opposed to neovim, a vim fork that seeks to improve on top of vim).
I’ve heard of Helix several times prior, but it never quite attracted me. Seemed like vim, but different key bindings and much worse plugin system. It also has different visual and normal modes than vim, but it didn’t quite click with me. I do like it’s multi-cursor ability though.
Then it turns out that Helix was also inspired by not just vim, but also kakoune. Kakoune also has different keybindings, and different modes, but its different modes make sense to me. It fuses visual and normal mode into one. Your normal mode is for both navigation and selection.
Kakoune promotes the idea that you should visually see the text you’re operating on before running the command. You know how in vim, “dd” deletes a line, “dw” deletes a word, and “d$” deletes to the end of the line? In vim, you don’t see what you’re deleting before its gone (which is fine and works for many). In kakoune, the selection happens first before the action. So you select the word or the line, and then you delete.
But what I found to be Kakoune’s killer feature was its shell integration. Kakoune seemlessly integrates into the unix shell, allowing you to offload many tasks to it. For example, instead of it having a built-in sort command, you use the unix sort command to sort your lines.
I’m surprised kakoune isn’t more popular. Yes, it is still in a much earlier phase than vim, and the ecosystem is far less mature, but I am surprised to see Helix gaining more traction.
I’m still very new to kakoune and exploring it. But I like it a lot so far.
Helix IMO has one huge benifit over Kakoune - inbuilt LSP and treesitter support and sane defaults. It takes the best bits of kakoune and neovim and improves on them both. This gives me an editor with enough IDE like support that I can use it for just about anything. All with only a few lines of config and zero plugins.
This means I don’t need to spend ages trying to configure my editor to work with various languages or working around its archaic defaults. I can just install it, optionally tweak some minor settings (like the theme and turning off auto bracers), install the LSP servers for the languages I need and I can get to coding.
And after years of fiddling with neovim/vim to get it to it behave in a reasonable, but not perfect, manor helix is a breath of free air. I did try kakoune for a very short time after getting pissed off with neovims configuration and plugins, but gave up on it quickly when I had to dive into getting more plugins configured for even basic things like LSP support (though this was years ago, back when helix was not in a daily usable state either).
Yeah, it would be nice to have plugins in helix (and they will come one day), but IMO the saner defaults and unbuilt support for most of what I used plugins for before is far nicer than getting support for the few bits that might be missing.
This is what helix does as well, and it shares kakounes keybindings and input system. So it is more similar to kakoune in that regard than vim with different keybindings. Really it is more of a kakoune clone, with inbuilt support for LSP and treesitter like neovim.
You can do this in vim and helix as well. Both can run external commands, pipe your open file to external commands or just your current selection to them. I use the unix sort in helix to sort lines all the time.
That’s a fair argument, thanks for showing me the other perspective!
Imho, I prefer an editor that focuses on doing editing right, and provides the interface and APIs for integration with other things. I get the appeal of built-in LSP working OOTB, but I prefer this gets done by distributing the a good editor pre-packaged with LSP and other plugins, sort of like how you get lunarvim or nvchad as neovim with config and plugins ready. This way you get LSP out of the box, but others can customize if they need.
I get that it is inspired from it, but it felt like a strange in-between to me. It still has 3 modes, and the two non-insert modes seemed not to have a well-defined boundary. It didn’t just click with me. Kakoune seems to do it much better imho.
I know vim has some basic she’ll integration, but it is not the same as Kakoune’s, unless I missed those features in vim and helix. I don’t wanna duplicate things, so I recommend you read the shell section of this page: https://kakoune.org/why-kakoune/why-kakoune.html