Exploring Helix for two weeks as a Neovim user

November 2023
Neovim on the right side, Helix on the left.

Having honed my skills with Vim keybindings, I found myself at a familiar juncture. However, a new path seemed to unfold, promising to revolutionize my coding experience.

Neovim, vim bindings has always been my reliable companion but the recent excitement around Helix's innovative keybindings and enhanced support has captured my attention . It feels like I've arrived at a crossroads, where I must consider embracing a fresh approach; but The question lingers is it that necessary ..??

I have been using Neo(vim ) ever since i watched video by like smith, titled as "How vim Makes my Daily Life Easier" back then 5 years ago and it has become my go-to IDE. I use Vim bindings not only inside vim but on my window manager, within the shell and the browser as well. As a result, Vim bindings have become an integral part of my daily life. I actually feel stronger when i can use the vim keys.

Vi mode on shell

I don't typically comment on topics solely because someone quoted them. However, the recent discussions and propaganda circulating within the Neovim subreddit caught my attention, prompting me to explore and experiment with Helix. After using Helix for approximately two weeks here are my views.

Noteworthy Features
  • Lsp just works out of the box, you don't need to install plugins
  • Good combination of color schemes by default somehow better than neovim
  • The approach of selecting items first and then performing operations on them adds a nice touch to modal editing, particularly beneficial for beginners, but I personally didn't enjoyed it that much.
  • It's faster than any lazy loaded neovim setup i wholeheartedly agree.
  • LSP diagnostics appear as virtual text at the top right of your screen. I appreciate this feature as it actually makes a cleaner screen appearance.
Click for image
There's a plugin to do the same in neovim but yeah, it looks cool by default.
  • Built-in which-key like functionality, default multicursors, and file pickers.
  • Impressive default syntax highlighting.
  • Includes essential Surround and Impaired features, no external plugins needed unlike in Neovim.
Things I found missing,
  • Plugins support which is needed the most
  • Not extensible; lack of apis unlike neovim
    • I've tweaked a lot of things in my neovim, like shortcuts and custom commands, to switch between different features, which i couldn't in helix.
    • For example, i use leader + n to toggle through line numberings; when i edit text i just remove them. Something I found inconvenient in Helix.
  • Some of the default mappings doesn't actually makes sense, like commenting with C-c :oOo
  • I prefer the editing model of vi over Helix, because i just press the keys and I know what's going to happen.
Final words

People might say that configuring Neovim takes a considerable amount of time, and indeed, this is true. However, I find that most of the time, I enjoy the process. Once you have your Neovim set up and working, there's generally no need to revisit the configuration.

To be honest, since the release of mini.nvim, it's even easier, and the number of plugins have been decreased so much in my setup. While Helix has a lot of potential from the ground up, it has grown up soo quickly.

Personally, If I were to transition to Helix, adapting to new practices might pose a challenge. Most of my applications are already configured with vi bindings and this way Neo(vim) has became my less of a text editor and more of a lifestyle. So, it's unlikely that I will switch to any other editor from Neovim.