This article started from my old repository, 10-minutes-to-Helix.
The goal is simple: get Helix running, learn the few keys that unlock most features, change the theme, open files, search, edit, save, and quit.
If you have used Vim, Neovim, or SpaceVim before, some parts will feel familiar: modal editing, h j k l, search, registers, and macros.
But Helix is not a Vim distribution.
It is a modern terminal editor designed from scratch, with multiple selections, syntax-tree based editing, file pickers, project search, and themes built in.
Compared with Neovim or SpaceVim, Helix's advantage is that many useful features work without a plugin stack. The tradeoff is also clear: many keys are different from Vim, so direct Vim muscle memory can be misleading.
For Vim Users
If you come from Vim or Neovim, you do not need to relearn everything.
h j k l, i/a/o/O, /, n/N, :w, :q, and :wq still feel mostly familiar.
One idea matters:
Vim often feels like "operator + motion"; Helix is closer to "selection first, action later".
Most early frustration comes from that difference.
| What you want | Vim habit | Helix way |
| --- | --- | --- |
| Go to file start / end | gg / G | g g / g e |
| Find files, search project, use clipboard | Leader key or plugins | Space f, Space /, Space y, Space p |
| Delete current line | dd | x d |
| Yank current line | yy | x y |
| Change current line | cc | x c |
| Delete a word | dw | w d |
| Change a word | cw | w c |
| Change inner word | ciw | m i w c |
| Delete inside parentheses | di( | m i ( d |
The most common ways to select multiple lines:
| What you want | Helix way |
| --- | --- |
| Select current line | x |
| Extend line selection downward | Press x repeatedly |
| Delete selected lines | Select lines, then press d |
| Yank selected lines | Select lines, then press y |
| Change selected lines | Select lines, then press c |
| Extend selection to full line bounds | X |
| Collapse back to one cursor | ; |
If you want something closer to Vim visual mode, press v to enter Select mode, then extend the selection with j/k/h/l/w. If you want to operate on full lines, press X afterward.
1. Install
macOS:
brew install helixArch Linux:
sudo pacman -S helixWindows:
scoop install helixFor more platforms, see the official installation guide.
Open Helix:
hxOpen a file:
hx README.mdIf you do not know how to quit, press Esc to return to Normal mode, then type:
:qSave and quit:
:wqHelix ships with a tutor:
hx --tutor2. Change the Theme
If you dislike the default theme, change it immediately.
Try a theme for the current session:
:theme github_dark_high_contrast
:theme dark-synthwave
:theme onedark
:theme gruvboxInside Helix, type :theme and press Tab to move through theme completions.
To make the theme permanent, open your config:
:config-openAdd this line at the top:
theme = "github_dark_high_contrast"Save:
:wReload config:
:config-reloadIf the config file does not exist, create it from the terminal:
mkdir -p ~/.config/helix
touch ~/.config/helix/config.toml3. Remember Three Entry Keys
You do not need to memorize the whole keymap at the beginning. Remember three entry keys first:
| Key | What it opens | How to explore |
| --- | --- | --- |
| g | Goto actions: file start, file end, line start, line end, definition, references | Press g and read the hint popup |
| Space | Common features: files, buffers, project search, comments, clipboard, command palette | Press Space and read the popup |
| : | Command prompt: save, quit, theme, config, reload | Type : and use Tab completion |
These three keys are useful because you can discover features as you go: press the entry key, read the hint, then press the next key.
4. Start Editing
The core editing idea in Helix is:
select first, act later.
In Vim, you often type an action and then a motion, like dw.
In Helix, you usually create a selection first, then run the action, like w then d.
Basic Operations
| Key | Description |
| --- | --- |
| h j k l | Move around |
| i | Insert before selection |
| a | Insert after selection |
| o / O | Open a new line below / above |
| Esc | Back to Normal mode |
| u / U | Undo / redo |
| . | Repeat last change |
Select and Change
| Key | Description |
| --- | --- |
| x | Select current line |
| % | Select the whole file |
| w | Move to next word start and form a selection |
| e | Move to next word end and form a selection |
| v | Enter Select mode |
| ; | Collapse selection to cursor |
| d | Delete selection |
| c | Change selection and enter Insert mode |
| y | Yank selection |
| p | Paste |
| > / < | Indent / unindent |
Useful combinations:
| Key | Description |
| --- | --- |
| x d | Delete current line |
| x c | Change current line |
| x y | Yank current line |
| % d | Delete the whole file content |
| m i w c | Change inner word, similar to Vim ciw |
| m a ( | Select around parentheses |
Search
| Key | Description |
| --- | --- |
| / | Search in current file |
| n / N | Next / previous search result |
| * | Search current selection |
| s | Select matches inside current selection |
| Space / | Search in the whole project |
Try multiple selections:
- Select the whole file with
%. - Press
s. - Type
count. - Press
Enter. - Press
c, typetotal, then pressEsc.
Now you are editing all matches at once.
5. More Vim Differences
| Vim habit | Helix way | Note |
| --- | --- | --- |
| Leader key | Space | Helix Space is a built-in feature layer |
| Vim selections mostly start in visual mode | Helix Normal mode is already selection-oriented | This is the biggest habit shift |
| f / t search only inside the current line | Helix f / t are not confined to the current line | This is called out in the official keymap |
| Ctrl-v block mode | Often use C / Alt-C for multi-cursor editing | C copies the selection down, Alt-C copies it up |
| Search then replace one by one | Often use s to turn matches into multiple selections | Select a range, press s, enter a regex, then c / d / y |
If you already have strong Vim muscle memory, do not try to turn Helix into Vim immediately.
Use it the Helix way for a few days: g for goto, Space for features, : for commands, and select before acting.
6. Advanced Topics
Helix has a built-in LSP client, but it does not install every language server for you.
If you only edit Markdown, config files, or small scripts, you can ignore this section at the beginning.
Check current environment:
hx --healthCheck a specific language:
hx --health rust
hx --health python
hx --health typescriptIf the language server is installed and visible in your PATH, Helix usually picks it up without extra config.
A simple config:
theme = "github_dark_high_contrast"
[editor]
line-number = "relative"
mouse = false
bufferline = "multiple"
color-modes = true
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"Config file path:
~/.config/helix/config.toml
Comments
Comments appear after approval.