A Moment with Helix

2022-11-10 17:00

I had some free time to play around with the Helix editor (again), yesterday. It's very cool, but I quickly realized that I was useless trying to navigate the editor's functions; my fingers have some serious muscle memory from Doom Emacs at this point. After using it for 10~ minutes, I noted several features that I need access to (I'll get to that later).

(To be fair, this isn't me slamming Helix; if anything, I'd like to use Helix more so that I can have a quick go-to editor to use in a pinch when emacs isn't available (ie, I broke it) or I only need to edit a few small files.)

What I like about Helix

Out of the box Helix has a lot of cool things:

  • LSP is setup - you just need to have your LSP binaries in their correct location
  • Lots of nice themes
  • Telescope functionality
  • pop up documentation that just works (and is faster than emacs)
  • Treesitter (Syntax highlighting works out of the box -- whereas, even tiny things like ~H expressions in .ex files are often unhappy in emacs)
  • Visual select oriented actions (I am not used to it, but I like what it offers.)

My Emacs "Dependencies"

In a short time I learned what I often really appreciate in my current emacs setup:

  • Make a new file separate to your current file: SPC . will show a popup of the cwd for the file you are in - allowing you to easily create a new file.
  • Related to to the above^ - easily navigating directories using tab and ctrl-w
  • I can page through the history of a file using SPC g t (using git time machine) and C-n and C-p to go back and forth
  • Magit, of course
  • Vterm, which is quite fast and nice
  • Nerd/NeoTree (Helix does not have a tree explorer, yet).
  • I don't use Embark very often, but I think I'm starting to see it's use.
  • I'm currently working in Elixir - navigating the point to the middle of a test and pressing SPC m t s will run the test at point -- this is really quite useful. Watching other people program in elixir without it makes me sad they don't have access to that functionality. (other languages have this ability as well).

To be fair - I'm describing an editor-ecosystem that has heaps of good plugins with lots of trials use. It's an apples-to-oranges comparison; helix doesn't have a plugin system (yet) and hasn't been around that long. What I'm trying to say is that I'm dependent on all these things from an establish ecosystem

Why do I want to try a new editor...

... if I like emacs so much?

The other day I was trying to install emacs on my steamdeck (because why not?), and it was quite a pain. Conversely, Helix will install instantly (even neovim was having trouble, too). To be fair, I don't quite get Arch linux, yet. But, even on Mac it's a bit of a pain to install Emacs. I guess that's what happens when you have a 40 year old codebase for a project that can do pretty much anything with text.

I'm excited to keep an eye on Helix. And while I'm starting to wonder if it's too late for me to switch to any other editor (the muscle memory is just so...baked...in now), trying new tools always brings me a bit of joy, regardless of whether or not I'll use them.