hx

star 58

Use Helix (hx) modal editor — selection-first editing with tree-sitter textobjects. Use when configuring keybindings, setting up language servers, or customizing themes.

knoopx By knoopx schedule Updated 5/17/2026

name: hx description: "Use Helix (hx) modal editor — selection-first editing with tree-sitter textobjects. Use when configuring keybindings, setting up language servers, or customizing themes." token_cost: 140 related: [vscode] keywords: ["helix", "hx", "modal", "keybinding", "theme"]

Helix

Modal text editor with selection-first editing and tree-sitter integration. The model is simple: select text first, then act on it (delete, yank, change). Supports multiple simultaneous selections.

Modes & Navigation

  • Normal: navigation and editing — i inserts before selection, v enters select mode
  • Insert: typing mode — jk or Escape returns to Normal
  • Select/extend: making multi-cursor selections

Key commands in Normal mode:

  • / search forward, n/N next/previous match
  • gd go to definition, ]d/[d next/previous diagnostic
  • Space opens Space mode (pickers, LSP actions)
  • ma/mi select around/inside textobjects (tree-sitter aware)

Space Mode (LSP & Pickers)

Accessed via Space in Normal mode:

  • f file picker, b buffer picker, s document symbols
  • d diagnostics, a code action, r rename, k hover docs
  • / global search

Configuration

Config lives in ~/.config/helix/config.toml (global) or .helix/config.toml (project-local).

theme = "onedark"

[editor]
line-number = "relative"
mouse = false
auto-format = true

[keys.normal]
C-s = ":w"          # Save with Ctrl+S
g = { a = "code_action" }  # ga triggers code action

[keys.insert.j]
k = "normal_mode"   # jk escapes insert mode

Language Servers

Configure in languages.toml:

[[language]]
name = "rust"
language-servers = [{ name = "rust-analyzer", except-features = ["format"] }, "taplo"]

Shell Integration

Pipe selection through external commands or insert command output:

  • | pipe selection through a command
  • ! insert command output before selection
  • :pipe typable command for piping

Key Constraints

  • Selection-first editing — you must select text before acting on it
  • Tree-sitter provides syntax-aware textobjects and navigation
  • Project-local config merges with global config
Install via CLI
npx skills add https://github.com/knoopx/pi --skill hx
Repository Details
star Stars 58
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator