Using Helix

For a full interactive introduction to Helix, refer to the tutor which can be accessed via the command hx --tutor or :tutor.

💡 Currently, not all functionality is fully documented, please refer to the key mappings list.

Modes

Helix is a modal editor, meaning it has different modes for different tasks. The main modes are:

  • Normal mode: For navigation and editing commands. This is the default mode.
  • Insert mode: For typing text directly into the document. Access by typing i in normal mode.
  • Select/extend mode: For making selections and performing operations on them. Access by typing v in normal mode.

Buffers

Buffers are in-memory representations of files. You can have multiple buffers open at once. Use pickers or commands like :buffer-next and :buffer-previous to open buffers or switch between them.

Selection-first editing

Inspired by Kakoune, Helix follows the selection → action model. This means that whatever you are going to act on (a word, a paragraph, a line, etc.) is selected first and the action itself (delete, change, yank, etc.) comes second. A cursor is simply a single width selection.

Multiple selections

Also inspired by Kakoune, multiple selections are a core mode of interaction in Helix. For example, the standard way of replacing multiple instance of a word is to first select all instances (so there is one selection per instance) and then use the change action (c) to edit them all at the same time.

Motions

Motions are commands that move the cursor or modify selections. They're used for navigation and text manipulation. Examples include w to move to the next word, or f to find a character. See the Movement section of the keymap for more motions.