Skip to content
Mathieu Agopian edited this page Feb 21, 2023 · 24 revisions

Note: As Helix is inspired by Vim and Kakoune, the keybindings are similar but has also some differences. The content of this page is inspired by Kakoune Wiki.

NOTE: Unlike vim, f, F, t and T are not confined to the current line.

delete a word:

  • vim: dw
  • helix: wd

change a word:

  • vim: cw
  • helix: ec or wc (includes the whitespace after the word)

delete a character:

  • vim: x
  • helix: d or ;d(; reduces the selection to a single char)

copy a line:

  • vim: yy
  • helix: xy

global replace:

  • vim: :%s/word/replacement/g<ret>
  • helix: %sword<ret>creplacement<esc>

Explanation: % selects the entire buffer, s opens a prompt for a regex, <ret> validates the regex and replace the selection with one per matches (hence, all occurences of word are selected). c deletes the selection contents and enter insert mode, replacement is typed and then <esc> goes back to normal mode.

go to last line:

  • vim: G
  • helix: ge

go to line start:

  • vim: 0
  • helix: gh

go to line first non-blank character:

  • vim: ^
  • helix: gs

go to line end:

  • vim: $
  • helix: gl

delete to line end:

  • vim: D
  • helix: vgld or t<ret>d

Note due to go to line end does not select the text, v is required.

t<ret> selects "'til" the newline represented by <ret>.

jump to matching bracket:

  • vim: %
  • helix: mm

auto complete:

  • vim: C-p
  • helix: C-x

comment lines:

  • vim: no keybinding by default. Using something like vim-commentary adds this functionality
  • helix: C-c

search for the word under the cursor:

  • vim: *
  • helix: A-o*n (if there's an LSP) or be*n

Explanation: if there's an LSP, A-o expands selection to the parent syntax node (with would be the word in our case). Then * uses the current selection as the search pattern, and n goes to the next occurence. be selects to the begining of the word, and e selects to the end of the word, effectively selecting the whole word.

block selection:

  • vim: C-v, then expand your selection vertically and horizontally
  • helix: There's no "block selection" mode, so instead you'd use multiple cursors. Expand your block selection vertically by adding new cursors on the line below with C, and horizontally using standard movements

Helix enables easy movement in insert mode without switching to normal mode. When in insert mode, you can use the same set of keybindings as in GNU Readline Emacs Key Binding. Such as Ctrl-b, Ctrl-f, Alt-b, Alt-f, Ctrl-d, Alt-d, Ctrl-a, Ctrl-e. For more, you can see the book. So if you are previously an Emacs user, or used this keybindings in the Bash/Zsh shell, or on macOS, you should feel at home in Helix.

Clone this wiki locally