Vim is like C, Helix is like C++ and Ki Editor is like Rust.

"Within C++, there is a much smaller and cleaner language struggling to get out."

Helix carries a baggage of ideas from Vim. It does not have consistent and transferable keybinds. It does not have composition of ideas:

You can move to the next line in the buffer editor with `k` but to move down to the next line in the file explorer you have to do `ctrl+n`?

Vim is like C, Helix is like C++ and Ki Editor is like Rust.

But how is ki like rust, and why is that significant? Helix is pretty rad, even if what you say is true.

Wait, helix has a file explorer now? The lack of one has been preventing me from using it more

It does, but iirc, it’s only an explorer and isn’t able to delete, rename, or create.

Been playing with agent strategies, vibe coding this: https://github.com/hbbio/rc that uses helix by default

Using it already (the granular branch) but it's far from stabilized...

> You can move to the next line in the buffer editor with `k` but to move down to the next line in the file explorer you have to do `ctrl+n`?

I've never used Helix, but this exists in vim too, but it the autocompletion, because in that context hitting k would type k. Makes sense right? I'm guessing hitting k in Helix file explorer has a similar use, maybe searching?

Nope, you'd then do Ctrl+K, not N

(Neo)Vim omnifunc? Ctrl+k does nothing in my setup, probably your config or a plugin. Or am I misunderstanding what you mean?

Yes, a slight misunderstanding, I only meant that the fact that K types in insert mode doesn't mean you move to Ctrl+N to replicate its functionality, you should still maintain the same position (K)

Sure, but [n]ext and [p]revious are common in the TUI world and which one makes more sense is debatable. There's decades of history behind the choice and while I prefer j/k I wouldn't call n/p wrong.

Yes, it's an very common mistake, there is also decades of history behind fixing it. But the debate here is not j/k vs [n]ew file/[p]rint file, but about the inconsistency of using one logic in navigating lines of text in an editor vs another in navigating lines of text in a file list

> consistent and transferable keybinds

I'm pretty sure next and previous are older than new file and print file both of which have little use in this context. You could also see it as navigating lines of text vs navigating results in a list (ie search in less/vim) if you want to be pedantic. In (Neo)Vim <C-j> in insert mode inserts a new line below the current and <C-k> inserts digraphs. N/P are not necessarily inconsistent.

[deleted]

I'm puzzled by the idea that positional constant is good for key bindings. How does the machine I ssh to know my keyboard layout or whether I am using a input with a related positional concept? (I suppose I should say I was puzzled by it, and now I am puzzled why this idea is back yet again.)

> How does the machine I ssh to know my keyboard layout

Why does it need to? If you are using say, Dvorak, you can just pick the keyboard layout by pressing `*` (a keybinding which is not affected by the chosen keyboard layout)

The machines and coworkers I have have no idea what I am using locally if they don't watch my typing, it could be QWERTZ or Turkish-F it could be a chorded keyboard.

Going backwards to layout makes no sense to me. They then can't tell me what to type, we get to fight about env defaults, etc.. And for what? If your composition is any good it is approaching the abstract of code so looking at your hands and some visual feedback is of little value as it traverses the whole context.

It's good at least in my case because I switch between Dvorak (Corne) and Qwerty (laptop's keyboard) all the time, without positional keymap, I would have to develop two sets of muscle memory

The effective freedom to choose keyboards like Dvorak relates directly to the privacy of a remote vi not breaking the privacy layer of this abstraction. Do what we do because the servers won't be updated or we will specifically lock their choices, etc..

After a few years of trying to get along directly in local pair programming or similar with people with local largely insane keymaps I decided to make use of fences and privacy making good neighbors and I don't want those fences ruined.

Even without my intended uses for this abstraction, positional habits is the first step of getting people out of the crib, a crib is easy to sell a start in but not a place to retire.

Helix OTOH looks good.

it's either ragebait or smth. Helix is not C++ and never would be it. Vim is C, Neovim is C++

People really need to stop making analogies and saying what things really are.

I agree. Helix is more like ruby on rails.

I will try ki editor