Hello, before answering that question it should probably be known that I first used vim for about 6 years, then helix for about 4. The reason I chose helix over kakoune at the time was the exact reasoning behind the post you shared, keymap configuration is just a toml file mapped to named operations.
Compared to the countless hours I spent in vim config files, configuring helix genuinely took minutes. In this regard it was nice and is probably the only reason I was able to experiment easily enough to haved developed the layout I have shared.
However, there are other aspects to software than ease of configuration; many of which are far more significant. Software which expresses itself with itself has inherit qualities it would otherwise not possess. Kakoune does this by expressing itâs actions with itâs keystrokes. This has an interesting (and I consider rather significant) effect of encoding itâs history with itself and also provides a natural pathway for exploration/mutation.
vImproved upon vi and kak does the same upon vim. The editing patterns that we utilize are a form of expression arrived at by the experimentation of Bram and the many people hacking away on runs-of-keystrokes which they could immediately share with anyone (even in an IRC message) by simply typing it again.
That level of lossless, direct communication is unheard of in nearly every other aspect of software development. We are all smacking the same input keys, but we do not all speak the same spoken/written language. English being, by far, my least-liked programming language of any.
It is naive to think one can fully understand what a complex concept like âmode based text editor interacted with by 60+ alphanumeric and symbolic inputsâ can or should do off the bat. If you try to define it all in words, your gonna miss a lot of whatâs possible as you are no longer observing and interacting with the true patterns of your hands/keyboard/screen, you are just swimming in hypotheticals.
Helix has runtime panicked (sometimes just from being open) more than any other piece of software I have utilized. Every versioned update I tried incorporated new runtime panics within the standard editing primitives, while at the same time incorporating features like âgit integrationâ, 10 new themes, and new colorful branding.
I stopped updating and lived with my own fork that would not panic for a long time. In fact I had to, because the owners of the repository started ignoring my PRs for very basic editing primitives not available by keymap after I attempted to explain more clearly a useful editing paradigm a non-english speaker was attempting to communicate to the admin of the helixâs repo on their forums. I wasnât even recommending they use it in helix, I was just explaining what somebody else saidâŚ
Before switching to kakoune recently I attempted to install the stable version of helix from my osâ package manager just to see if it had gotten better. All the functionality rejected in my PRs has since become a part of helix (not through my PRs), and it panicked within 10 minutes of using it.
A lot of software in the wild has very little to do with good design and a whole heck of a lot to do with egos and other personal motives.
Good software/art is something that you donât know what it is until you find it, if you think you know what you want and try to paint by number to create the image you want, itâs gonna end up real ugly and broken. But if you accept that all you got at the moment is ugly (not-knowing) to work with, you can combine all that gross shit into something absolutely marvelously beautiful which would have not been obtainable through any other method.
As I have grown older, characteristics such as the intent with which people approach the software they create is of significantly greater importance than immedately receiving what I think I want. Because most of the time what I think I want is not at all what I actually need; and the more the tools we use obfuscate us from the medium we are using, the more we will become unable to even see whatâs possible.
This mapping took me a few days to put together, I enjoyed every second of it.