← Back to DevBytes

Helix Keyboard Shortcuts: Complete Guide

What Are Helix Keyboard Shortcuts?

Helix is a modal text editor inspired by both Vim and Kakoune. Unlike traditional editors where you type directly into a buffer, Helix separates editing into distinct modes β€” primarily Normal, Insert, and Select mode β€” each with its own set of keyboard shortcuts. This modal approach means the same keystroke can perform entirely different actions depending on the active mode, allowing you to navigate, select, and manipulate text without ever reaching for a mouse.

Helix keyboard shortcuts are the keybindings that power this modal editing paradigm. They encompass everything from basic cursor movement (the classic h, j, k, l navigation) to advanced multi-cursor operations, tree-sitter–powered structural selections, and a unique selection-action model inherited from Kakoune where you select first, then act.

Why Keyboard Shortcuts Matter in Helix

πŸš€ Deploy your AI agent in 10 minutes

Managed Hermes hosting. Zero DevOps. 100M tokens/mo included.

Try it free →

Mastering Helix shortcuts is not merely about memorizing key combinations β€” it's about rewiring how you think about text manipulation. Here's why they matter:

Modal Editing: The Foundation

Before diving into specific shortcuts, you must understand Helix's three primary modes and how to transition between them:

Normal Mode

This is the default mode where you navigate, select, and issue commands. You start here when you open Helix. In Normal mode, every key is a shortcut for movement or an action waiting for a target selection.

Insert Mode

Entered by pressing i (insert before cursor), a (append after cursor), o (open line below), or O (open line above). In Insert mode, keystrokes are typed literally into the buffer. Press Esc to return to Normal mode.

Select Mode

This is Helix's signature mode. When you extend a selection using v (select) or perform a movement that creates a selection, you enter Select mode. The highlighted region is the current selection. From here, pressing an action key like d (delete) or c (change) applies that action to the entire selection. Press Esc to collapse the selection and return to Normal mode.

Essential Navigation Shortcuts

Navigation in Helix is built on a set of mnemonic, home-row-friendly keys. Here are the core movement shortcuts (all used in Normal mode):

# Basic cursor movement (Normal mode)
h  β€” left
j  β€” down
k  β€” up
l  β€” right

# Word-level movement
w  β€” next word start
b  β€” previous word start
e  β€” end of current/next word
W  β€” next WORD (punctuation-delimited)
B  β€” previous WORD
E  β€” end of WORD

# Line-level movement
0  β€” beginning of line
^  β€” first non-whitespace character
$  β€” end of line
gg β€” go to file start
G  β€” go to file end
:n β€” go to line n (e.g., :42)

# Page-level movement
Ctrl+f β€” page down (forward)
Ctrl+b β€” page up (backward)
Ctrl+d β€” half-page down
Ctrl+u β€” half-page up

# Jumping to characters
f β€” forward find character on current line
F β€” backward find character
t β€” forward 'til character (stop before)
T β€” backward 'til character

Selection and Manipulation Shortcuts

Helix's selection system is where its power truly shines. Selections are always visual and can be extended, narrowed, or multiplied:

# Creating selections (Normal mode)
v        β€” enter Select mode (select current character)
Shift-v  β€” select entire line
Ctrl-v   β€” block/column selection

# Extending selections
x        β€” extend selection to line (repeat for more lines)
)        β€” extend selection to next sentence
(        β€” extend selection to previous sentence
]        β€” extend selection to next paragraph
[        β€” extend selection to previous paragraph

# Tree-sitter structural selections (powerful!)
Alt-o    β€” expand selection to parent syntax node
Alt-i    β€” shrink selection to child syntax node
Alt-p    β€” select previous sibling node
Alt-n    β€” select next sibling node

# Multi-cursor magic
C        β€” (Shift-c) create a cursor at each selection occurrence
          in the current selection range
Alt-C    β€” create a cursor at every match of the current
          selection across the entire file
,        β€” remove the primary (last) cursor
Q        β€” (Shift-q) remove all secondary cursors
          keeping only the primary

The Alt-o and Alt-i tree-sitter shortcuts are revolutionary. Place your cursor inside a function, press Alt-o, and watch the selection grow to encompass the statement, then the block, then the entire function β€” all based on the parsed syntax tree of your programming language.

Editing Shortcuts: Actions and Verbs

In Helix, actions operate on selections. The most common editing verbs are:

# Core editing actions (apply to current selection)
d  β€” delete selection
c  β€” change selection (delete + enter Insert mode)
y  β€” yank (copy) selection to clipboard
p  β€” paste after selection/cursor
P  β€” paste before selection/cursor
>  β€” indent selection
<  β€” dedent selection
/  β€” search in selection
!  β€” filter selection through external command

# Combining motions with actions
d2w   β€” delete 2 words forward
c$    β€” change from cursor to end of line
ygg   β€” yank from cursor to file start
d)    β€” delete from cursor to sentence end

# The dot repeat operator
.     β€” repeat the last editing action at the current cursor

The real power comes from the combination: dw deletes a word, c( changes everything from cursor to sentence start, and y] yanks to the next paragraph boundary. Each motion becomes a noun for the verb to act upon.

Search and Replace Shortcuts

# Search (Normal mode)
/          β€” enter search mode (type pattern, press Enter)
?          β€” search backwards
n          β€” jump to next match
N          β€” jump to previous match
*          β€” search for word under cursor (forward)
#          β€” search for word under cursor (backward)

# During search mode
Enter      β€” execute search
Esc        β€” cancel search
Ctrl-r     β€” insert register content into search pattern
Ctrl-w     β€” insert word under cursor into search pattern

# Replace operations
:s/old/new β€” replace first occurrence on current line
:s/old/new/g β€” replace all on current line
:%s/old/new/g β€” replace all in entire file
r    β€” replace single character under cursor

Window, Buffer, and Tab Management

# Window splitting
Ctrl-w v   β€” vertical split
Ctrl-w s   β€” horizontal split
Ctrl-w h/j/k/l β€” move between splits
Ctrl-w q   β€” close current split
Ctrl-w o   β€” close all splits except current

# Buffer navigation
:bnext     β€” next buffer (:bn)
:bprev     β€” previous buffer (:bp)
:bdelete   β€” close buffer (:bd)
Space b    β€” fuzzy buffer picker
Space f    β€” fuzzy file picker (open file)

# Tab management
Ctrl-t     β€” open new tab
gt         β€” go to next tab
gT         β€” go to previous tab
:tabclose  β€” close current tab

The Space Leader Key

Helix reserves the Space key as a leader key in Normal mode, opening up a vast menu of commands without conflicting with single-key bindings:

# Space leader shortcuts (press Space, then the second key)
Space w   β€” write (save) file
Space q   β€” quit (close current view)
Space e   β€” open file explorer/tree
Space f   β€” fuzzy file finder
Space b   β€” buffer picker
Space /   β€” project-wide grep search
Space '   β€” switch to last buffer
Space g   β€” toggle Git gutter
Space d   β€” jump to definition (LSP)
Space r   β€” rename symbol (LSP)
Space a   β€” apply code action (LSP)
Space ?   β€” show all available keybindings
Space :   β€” enter command mode

Practical Code Examples

Let's walk through realistic editing scenarios that combine multiple shortcuts into efficient workflows:

Example 1: Refactoring a Function Name Across a File

# Scenario: Rename every call to fetchUserData() to loadUserData()

# Step 1: Place cursor on fetchUserData
# Step 2: Press * to select all occurrences of the word
# Step 3: Press Alt-C to create cursors at ALL matches in file
# Step 4: Type c to change, then loadUserData, then Esc
# Result: All occurrences changed simultaneously with live preview

Example 2: Extracting a Block of Code into a New Function

# Scenario: Move a conditional block to a helper function

# Step 1: Place cursor inside the block
# Step 2: Press Alt-o repeatedly until the entire block is selected
# Step 3: Press d to cut the block
# Step 4: Navigate elsewhere, press p to paste
# Step 5: Wrap in function definition manually
# Alternative: Use Space a for LSP "extract function" code action

Example 3: Bulk Editing with Multi-Cursor

# Scenario: Add console.log() to 20 debug lines

# Step 1: Search for debug flag with /debug_flag
# Step 2: Press C (Shift-c) on first match to select all within view
# Step 3: Press Alt-C to expand to ALL matches in file
# Step 4: Press o to open a new line below each cursor
# Step 5: Type console.log('hit here');
# Step 6: Press Esc to finish
# All 20 cursors typed simultaneously β€” 20 edits in one go

Example 4: Structural Editing with Tree-Sitter

# Scenario: Delete all method bodies in a class, keeping signatures

# Place cursor anywhere inside the class
# Press Alt-o to select the class body
# Press Alt-i to narrow to just the method (repeat for each)
# Press d to delete β€” tree-sitter ensures correct boundaries
# Repeat with . (dot repeat) for identical operations on next method

Best Practices for Mastering Helix Shortcuts

Conclusion

Helix keyboard shortcuts represent a thoughtfully designed editing language where navigation, selection, and action are cleanly separated yet seamlessly composable. Unlike editors that rely on chorded Ctrl+Shift+Alt combinations, Helix opts for sequential key presses that flow naturally β€” select a target with a motion, then apply a verb. The integration of tree-sitter structural selection elevates this beyond traditional text-based editing, allowing you to manipulate code at the semantic level with the same keystrokes you'd use for words and lines. Whether you're a Vim veteran curious about the Kakoune-inspired selection-first model or a newcomer seeking a modern modal editor with batteries included, investing time in mastering these shortcuts will transform your editing from a series of manual corrections into a fluid, intentional conversation with your codebase.

πŸš€ Need a reliable AI agent for your project?

Deploy Hermes Agent in 10 minutes. Managed hosting, zero DevOps.

Get Started β€” $23.99/mo
← Back to all articles