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.
I started with EMACS, switched to vi(m) after a few years, and used that for many years before switching to kakoune. I used that for a year or so before switching to helix.
The main difference to me is that kakoune is very chording-heavy. Despite being modal, it feels more like emacs than vi. Helix is much less dependent on chording, and is consequently much better for my RSI than kakoune.
Helix is younger. It has no plug-in system, and is missing some key binding ability, like binding key sequences to user macros. Despite this, it feels more comfortable, and the depth of the integration of the LSP system makes it perfectly usable as a lightweight IDE.
Do you mean keybindings? I can see that some keybindings are more chording-heavy. I think default keybindings, while nice, should be secondary, as they can be remapped.
Yup!
Yes, the default bindings can be remapped, but Helix’s bindings rely less on chording OOB. In both of these projects, the defaults are important, as they are unstable and both frequently break backwards-compatability.
I’m not sure you could easily configure Kakoune to work like Helix. For instance, many of those chorded are modes in Helix. For example, word selection in kak is (IIRC) Alt-Shift-W. In Helix, it’s “m”, then “s” , then “w”. Each key press gets you into a multiple-choice selection mode, and they can be pressed as fast or slow in sequence as you like, and none involves also holding another key whilst pressing it. It’s truly modal, whereas kak’s modality is mostly confined to “insert” or “command” mode.
Helix has prompts for sub-modes, so the infrequently used functions that never become part of muscle memory are still accessible without digging into a readme.
A lot of people like chording. For me, it makes my hands hurt, and I find it requires a lot more memorization of key combinations. I found it much more vim-like, which floats my boat.
To each their own.