TL;DR — Quick Summary

Helix is a modern terminal text editor with built-in LSP, Tree-sitter, and multiple cursors. Learn keybindings, configuration, and how it compares to Vim/Neovim.

Helix is what you get when you redesign a modal editor from scratch with modern IDE features built in. No plugin manager, no configuration files, no waiting for Tree-sitter to install — it works out of the box with syntax highlighting, LSP integration, and multiple cursor support.

Installation

# macOS
brew install helix

# Arch Linux
sudo pacman -S helix

# Ubuntu/Debian (via PPA or AppImage)
sudo add-apt-repository ppa:maveonair/helix-editor
sudo apt install helix

# Cargo
cargo install --locked helix-term

# Verify
hx --version

Core Concept: Selection → Action

Vim: d (delete) → w (word) = delete word Helix: w (select word) → d (delete) = delete word

You see what you’re selecting before acting on it. This is more visual and less error-prone.

Essential Keybindings

KeyNormal ModeDescription
iInsert beforeEnter insert mode
aInsert afterAppend mode
w/b/eWord motionsSelect word/back/end
xSelect lineSelect entire line
dDeleteDelete selection
cChangeDelete and enter insert
y/pYank/PasteCopy and paste
sSelect in selectionSearch within selection
CAdd cursor belowMultiple cursors
Alt+sSplit selectionCreate cursor per match
,Remove secondary cursorsKeep only primary
SpaceSpace mode menuFile picker, LSP, etc.

Space Mode (Command Menu)

Press Space in Normal mode to see all available commands:

KeyAction
Space+fFile picker (fuzzy finder)
Space+bBuffer picker
Space+sSymbol search (LSP)
Space+dDiagnostics
Space+aCode actions
Space+rRename symbol
Space+kShow hover docs

Built-in LSP

Helix auto-detects language servers. Install them and they just work:

# Example language servers
npm i -g typescript-language-server   # TypeScript
pip install python-lsp-server         # Python
rustup component add rust-analyzer    # Rust

Features available out of the box:

  • Autocomplete (Ctrl+x in insert mode)
  • Go to definition (gd)
  • Find references (gr)
  • Hover documentation (Space+k)
  • Code actions (Space+a)
  • Rename (Space+r)
  • Diagnostics (Space+d)

Configuration

Config file: ~/.config/helix/config.toml

theme = "catppuccin_mocha"

[editor]
line-number = "relative"
mouse = true
cursorline = true
auto-format = true
idle-timeout = 50

[editor.cursor-shape]
insert = "bar"
normal = "block"

[editor.file-picker]
hidden = false

[editor.lsp]
display-messages = true
display-inlay-hints = true

[editor.indent-guides]
render = true

Comparison

FeatureHelixNeovimVimVS Code
LanguageRustC/LuaCElectron
LSPBuilt-inPluginPluginBuilt-in
Tree-sitterBuilt-inPluginNoExtension
Multiple cursorsBuilt-inPluginNoBuilt-in
Fuzzy finderBuilt-inPluginPluginBuilt-in
Plugin systemPlannedLuaVimScriptExtension API
Config neededMinimalExtensiveExtensiveGUI

Summary

  • Helix is a modern modal editor with selection-first editing (select → act)
  • Built-in LSP, Tree-sitter, multiple cursors, and fuzzy finder — no plugins needed
  • Space-mode menu provides discoverability for all commands
  • Minimal configuration required — works great out of the box
  • Written in Rust for fast startup and rendering performance