Helix
A post-modern modal text editor with built-in LSP support, multiple selections, and a tree-sitter powered syntax engine — no plugin system required.
Helix is a modal text editor in the spirit of Vim and Kakoune, but with a modern foundation. Unlike Neovim or Vim, it ships with everything you need out of the box: LSP support, tree-sitter syntax highlighting and text objects, multiple cursors, and a fuzzy file picker — no plugin manager, no vimrc sprawl.
Its key innovation compared to Vim is the selection → action model (borrowed from Kakoune): you make a selection first, then act on it, rather than issuing a verb and waiting for a motion to complete. This makes operations more predictable and reversible.
Features
- Built-in LSP — hover documentation, go-to-definition, code actions, diagnostics, and rename all work without any configuration
- Tree-sitter everywhere — syntax highlighting, structural text objects
(
function,class,parameter), and indentation are all driven by tree-sitter grammars - Multiple selections — a first-class feature, not a plugin. Select multiple occurrences, split selections, align them
- No configuration required — works well out of the box; when you do want to
customise it, a single
config.tomlcovers keybindings and themes - Discoverable — a built-in which-key style popup shows available commands at every step so you don't need to memorise everything up front
- Space mode —
Spaceopens a menu for common actions (file picker, buffer list, diagnostics) making it very approachable for Vim newcomers
Installation
cargo install helix-term --locked
After installing, fetch the tree-sitter grammars:
hx --grammar fetch
hx --grammar build
Or via your package manager:
# Debian / Ubuntu (23.04+ / Debian 13+)
apt install helix
# Fedora
dnf install helix
# Arch Linux
pacman -S helix
# macOS
brew install helix
# Flatpak
flatpak install flathub com.heliXEditor.HelixBasic Usage
# Open a file
hx src/main.rs
# Open a directory (launches the file picker)
hx .Essential keybindings
| Key | Action |
|---|---|
h j k l | Move left / down / up / right |
w b | Move forward / backward by word |
i | Enter insert mode before selection |
a | Enter insert mode after selection |
v | Enter select mode |
d | Delete selection |
c | Change selection (delete and enter insert) |
Space f | Open file picker |
Space b | Open buffer picker |
g d | Go to definition |
K | Show hover documentation |
Space a | Code actions |
% | Select entire file |
s | Select (regex search within selection) |
C | Duplicate cursor below (multiple cursors) |
:w | Save |
:q | Quit |
Configuration
Helix looks for config at ~/.config/helix/config.toml:
theme = "catppuccin_mocha"
[editor]
line-number = "relative"
cursorline = true
color-modes = true
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = falseLanguages
Helix has built-in support for a large number of languages. Check what's supported and configured on your system:
hx --health
hx --health rust