3.4 KiB
Usage
(Currently not fully documented, see the keymappings list for more.)
See tutor.txt (accessible via hx --tutor
or :tutor
) for a vimtutor-like introduction.
Registers
Vim-like registers can be used to yank and store text to be pasted later. Usage is similar, with "
being used to select a register:
"ay
- Yank the current selection to registera
."op
- Paste the text in registero
after the selection.
If there is a selected register before invoking a change or delete command, the selection will be stored in the register and the action will be carried out:
"hc
- Store the selection in registerh
and then change it (delete and enter insert mode)."md
- Store the selection in registerm
and delete it.
Special Registers
Register character | Contains |
---|---|
/ |
Last search |
: |
Last executed command |
" |
Last yanked text |
There is no special register for copying to system clipboard, instead special commands and keybindings are provided. See the keymap for the specifics.
Surround
Functionality similar to vim-surround is built into helix. The keymappings have been inspired from vim-sandwich:
ms
- Add surround charactersmr
- Replace surround charactersmd
- Delete surround characters
ms
acts on a selection, so select the text first and use ms<char>
. mr
and md
work
on the closest pairs found and selections are not required; use counts to act in outer pairs.
It can also act on multiple seletions (yay!). For example, to change every occurance of (use)
to [use]
:
%
to select the whole files
to split the selections on a search term- Input
use
and hit Enter mr([
to replace the parens with square brackets
Multiple characters are currently not supported, but planned.
Textobjects
Currently supported: word
, surround
, function
, class
, parameter
.
ma
- Select around the object (va
in vim,<alt-a>
in kakoune)mi
- Select inside the object (vi
in vim,<alt-i>
in kakoune)
Key after mi or ma |
Textobject selected |
---|---|
w |
Word |
W |
WORD |
( , [ , ' , etc |
Specified surround pairs |
f |
Function |
c |
Class |
p |
Parameter |
Note: f
, c
, etc need a tree-sitter grammar active for the current
document and a special tree-sitter query file to work properly. Only
some grammars
currently have the query file implemented. Contributions are welcome !