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.

Screenshot of Helix

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.toml covers 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 modeSpace opens 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.Helix

Basic Usage

# Open a file
hx src/main.rs

# Open a directory (launches the file picker)
hx .

Essential keybindings

KeyAction
h j k lMove left / down / up / right
w bMove forward / backward by word
iEnter insert mode before selection
aEnter insert mode after selection
vEnter select mode
dDelete selection
cChange selection (delete and enter insert)
Space fOpen file picker
Space bOpen buffer picker
g dGo to definition
KShow hover documentation
Space aCode actions
%Select entire file
sSelect (regex search within selection)
CDuplicate cursor below (multiple cursors)
:wSave
:qQuit

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 = false

Languages

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