All commands used in NORMAL state
More than half of commands are about movement, they can be classified into 4 groups.
Char & Word movement have explicit direction. Current selection’s direction will always be ignored.
Move cursor left/right.
Selection type: expand char
Move cursor left/right and select, the selection can be expand by other char movements.
Move cursor to previous/next line.
Selection type: expand char
Move cursor prev/next and select, the selection can be expand by other char movements.
Selection Type: expand word
Select current word/symbol(from its beginning to end), push the content into regexp-search-ring
.
Selection Type: no-expand word
Forward select to the word/symbol end.
Selection type: no-expand word
Backward select to the word/symbol beginning.
For command in these group, reverse movement can be done with negative argument.
Command will respect the direction if current selection has the same selection type(e.g. line
vs line
)
N: number from 0 to 9.
After each movement(except char movement), further position hint will be displayed inline. Use this command to expand quickly.
Selection type: no-expand visit
Read the text from minibuffer, search and select.
The input will be pushed into regexp-search-ring
.
The search should be a regexp, by default the list will be displayed as sanitized text.
If you preper to see them in regexp format, (setq meow-visit-sanitize-completion nil)
.
Selection type: no-expand visit
Search and select with the head of current regexp-search-ring
.
Selection type: expand line
Select current line.
Selection type: expand block
Select current block. Block means a matched parens(usually (...)
, [...]
or {...}
).
Selection type: expand block
Select from current point, to the next block.
Selection type: no-expand find
Select from current point, to the far end of a specific character.
Selection type: no-expand till
Select from current point, to the near end of a specific charater.
Selection type: expand join
Select from previous non-empty line’s end to this line’s indentation.
These commands are thing-based, each commands will prompt you a single key input.
Selection type: transient
, means no way to expand.
thing | key |
---|---|
round paren | r |
square paren | s |
curly paren | c |
string | g |
paragraph | p |
line | l |
defun | d |
buffer | b |
Select the inner part of thing. e.g. A Lisp expression without parentheses.
Select the whole thing.
Select from current point to the beginning of thing.
Select from current point to the end of thing.
Switch to INSERT state at the beginning of region
Switch to INSERT state at the end of region
Delete current region and switch to INSERT state. When exit from INSERT state, inserted content will be selected.
This command support fallback behaviour, default to meow-change-char
.
Delete current character and switch to INSERT state.
Insert a new line above, switch to INSERT state at that line.
Insert a new line below, switch to INSERT state at that line.
Kill current region.
Depending on the current selection type, there are two special cases:
- for
line
selection, the whole line plus the newline character will be added to the killed content; - for
join
selection, selected region will be deleted, not killed.
This command supports fallback behaviour. Default to `~meow-C-k~`.
Call the command on C-k
.
Call the command on C-d
.
Copy.
This command support fallback behaviour.
Yank.
Replace current region with current kill.
This command support fallback behaviour.
Cancel selection.
This command support fallback behaviour, default to keyboard-quit
.
Reverse current selection.
This command support fallback behaviour.
Undo. Unlike builtin undo
, this command will always cancel selection.
Undo in current selection.
Pop one selection.
This command support fallback behaviour, default to meow-pop-grab
.
Turn current selection into secondary selection.
Sychronize the contents of secondary selection to the contents of current region.
Swap the contents of secondary selection with the contents of current region.
Cancel secondary selection.