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
| Key | Normal Mode | Description |
|---|---|---|
i | Insert before | Enter insert mode |
a | Insert after | Append mode |
w/b/e | Word motions | Select word/back/end |
x | Select line | Select entire line |
d | Delete | Delete selection |
c | Change | Delete and enter insert |
y/p | Yank/Paste | Copy and paste |
s | Select in selection | Search within selection |
C | Add cursor below | Multiple cursors |
Alt+s | Split selection | Create cursor per match |
, | Remove secondary cursors | Keep only primary |
Space | Space mode menu | File picker, LSP, etc. |
Space Mode (Command Menu)
Press Space in Normal mode to see all available commands:
| Key | Action |
|---|---|
Space+f | File picker (fuzzy finder) |
Space+b | Buffer picker |
Space+s | Symbol search (LSP) |
Space+d | Diagnostics |
Space+a | Code actions |
Space+r | Rename symbol |
Space+k | Show 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
| Feature | Helix | Neovim | Vim | VS Code |
|---|---|---|---|---|
| Language | Rust | C/Lua | C | Electron |
| LSP | Built-in | Plugin | Plugin | Built-in |
| Tree-sitter | Built-in | Plugin | No | Extension |
| Multiple cursors | Built-in | Plugin | No | Built-in |
| Fuzzy finder | Built-in | Plugin | Plugin | Built-in |
| Plugin system | Planned | Lua | VimScript | Extension API |
| Config needed | Minimal | Extensive | Extensive | GUI |
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