Software Defined Redneck

So I Tried Helix - And I'm Not Going Back

Nearly a year ago I wrote about trying helix and ended the post with the general opinion that I didn’t need any of the advanced features that these modal editors bring to the table. But I gave it a try anyway, finished the built in tutor, and now I can’t live without it. I still dislike hjkl, but that’s because I’m used to my specific keyboard layout that makes arrow keys easy to access.

The biggest advantage I’ve found over simpler editors is multi cursor editing, especially as I’ve been applying for jobs and constantly needing to redo the formatting when the website mangles my resume. I wish that all text boxes in my browser could be little helix panes. Additionally, it’s flexible. I can have a project-level config file that defines a key bind to do whatever I want. For example, I added an option to the “space” menu that saves all open editors and runs a build script so I can easily preview my changes.

There are of course some disadvantages. I don’t quite understand the primary vs system clipboard. This appears to come from the world of Linux with the primary (selection) clip and the system (clipboard) clip. While I do use Linux, I spend most of my time in a Windows world, where this concept isn’t really a thing. “Clipboard is Clipboard!” I yell as I paste the wrong thing 4 times in a row.

Something that makes me question the developers’ decisions is where they store the grammar files for the different language syntaxes (syntaxi?). For some reason a default installation and running the built in command to get grammars stores them all in the user’s config files. Not .local, but .config, next to its own configuration files. This makes a big difference when trying to back up your dotfiles, where .config is important and .local isn’t expected to be backed up. As a result I had to include an annoyingly specific exclusion to my backup program’s ignore set. Thankfully as a root user I can put them in /usr/bin/runtime/grammars but it’s strange that it’s not defaulting to that option since I installed it with dnf/root packags manager. Whatever, I found a solution and will forever kewp the related helix PR on my notification list.

The other issue I’ve encountered is inconsistencies across environments.I think this is an SSH/tmux issue more than a helix specific issue, but I’m just glad that I can add editor.true-color=true to my config and force it to play nice instead of complaining. At least for color support.

All in all I’m very happy with Helix - using helix and tmux to my server means I can write notes or posts from wherever, whenever, as long as I have an ssh connection available. Tmux and helix are now a core part of my base images for any VMs/containers because they are both incredibly powerful tools that I have grown to rely on.