By neildaemond, an 'any-stack' hacking grasshopper.
Taking notes while tinkering with:

Vim to Helix IDE

I loved Vim; the keybindings, simplicity, and modal style usage. I could use plugins to achieve almost anything, enabling smooth workflows and tooling that others have pioneered.

However, as someone who jumps between frameworks, languages and projects, many past chosen plugins become redundant and forgotten. The last thing anyone needs is technical debt from their IDE, and so I entered a period of using JetBrains IDEs a couple of years ago when my role required me to focus on React.

Recently, I stumbled upon Helix IDE at the same time as Nix Flakes, and that spurred the realisation of this powerful but simple setup.

With Nix Flakes, I can define all SDKs, LSPs, Libraries, and more within a project or app folder, such that they get loaded and unloaded as I enter and leave that folder.

For example, I’ve just opened a new tmux window into my 808.ninja folder and everything gets loaded as follows:

808.ninja deps loaded by Nix flake

The best part is that when I do hx --health(see output here), there is no added bloat that is going to pollute the coding experience. All the Go-related LSP functionality is included.

At this point, I can cd into another project folder that uses Elixir and have all the Go requirements unloaded, making way for all the Elixir-related dependencies.

I don’t know about you, but I find that pretty incredible and liberating.

Although helix doesn’t have plugins, I find that it does have the features I need and after going through its included tutorial a couple times and using it soley instead of vim (some vim habits were hard to change, so I had to stop vim for now), I’m enjoying the absence of plugins, knowing that all needed features should be included. I also really like how menus pop up as I complete the key sequences so that I can easily double-check which key to press if I’d forgotten.

One thing that I missed was the toggleable console JetBrains IDE has, but I’ve figured out a way, which I’ll write about later, to simulate that function when I’m developing in a tmux session.


#Helix   #IDEs   #Tools   #Vim   #NixFlakes