The Helix text editor
Helix is a terminal-based text editor written in Rust.
It's modal, like vi-family languages, but flips the verb-subject style of commands to subject-verb.
For instance, with Helix you change the contents of the word under the cursor with miwc (match in word change) while vim would use ciw.
I could go either way with this: I'm used to the vi approach but the visual feedback of Helix is nice.
The main reason I chose the editor is what features is comes with "out of the box".
Most if not all of my carefully-tended vim plugins are just built into Helix. It has a Telescope-style fuzzy picker system, LSP integration, and tasteful Git support.
That being said, the pace of development has slown down considerably and it feels like it's lost most of its momentum. The pipeline from proposal to pull request to merge to release has broken down throughout 2025 and 2026. Here are a few of the features I'm missing from it:
Don't allow an open-but-unedited file from diverging with what's on the file system. This is a huge gap that can cause data loss if you're not careful. It's the main reason I don't rely on Helix more.
Show the full message when hovering over a truncated error.
Issue: Diagnostic Hover
Show the current context (e.g. function) at the top of the viewport, like Nova or Xcode.
View the history of the line you're editing.
Issue: Git blame and URL
PR: Inline Git Blame
See all of the changes in the current commit or staging area.
Issue: Add a diff hunks picker
Issue: VCS changes picker
Show the diff between two files. Only vim and emacs have great implementations of this that I've used, but GitSavvy in Sublime Text is still pretty usable and "table stakes" for an editor working on complex projects.
Issue: Side by side file diffing
Reopen files and restore cursor positions when restarting the editor.
Issue: Persistent State (session)
Have a persistent list of file locations to refer to.
PR: feat: quicklist
Fold regions of text based on syntax.
PR: Code folding
Allow resizing split windows.
Add icons to represent file types and status.
Fix colors in pickers.