mirror of https://github.com/helix-editor/helix
Add documentation for surround
parent
892c80771a
commit
753ed4cbc5
|
@ -21,7 +21,6 @@
|
||||||
| `F` | Find previous char |
|
| `F` | Find previous char |
|
||||||
| `Home` | Move to the start of the line |
|
| `Home` | Move to the start of the line |
|
||||||
| `End` | Move to the end of the line |
|
| `End` | Move to the end of the line |
|
||||||
| `m` | Jump to matching bracket |
|
|
||||||
| `PageUp` | Move page up |
|
| `PageUp` | Move page up |
|
||||||
| `PageDown` | Move page down |
|
| `PageDown` | Move page down |
|
||||||
| `Ctrl-u` | Move half page up |
|
| `Ctrl-u` | Move half page up |
|
||||||
|
@ -30,6 +29,7 @@
|
||||||
| `Ctrl-o` | Jump backward on the jumplist |
|
| `Ctrl-o` | Jump backward on the jumplist |
|
||||||
| `v` | Enter [select (extend) mode](#select--extend-mode) |
|
| `v` | Enter [select (extend) mode](#select--extend-mode) |
|
||||||
| `g` | Enter [goto mode](#goto-mode) |
|
| `g` | Enter [goto mode](#goto-mode) |
|
||||||
|
| `m` | Enter [match mode](#match-mode)
|
||||||
| `:` | Enter command mode |
|
| `:` | Enter command mode |
|
||||||
| `z` | Enter [view mode](#view-mode) |
|
| `z` | Enter [view mode](#view-mode) |
|
||||||
| `Ctrl-w` | Enter [window mode](#window-mode) (maybe will be remove for spc w w later) |
|
| `Ctrl-w` | Enter [window mode](#window-mode) (maybe will be remove for spc w w later) |
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
| `Alt-;` | Flip selection cursor and anchor |
|
| `Alt-;` | Flip selection cursor and anchor |
|
||||||
| `%` | Select entire file |
|
| `%` | Select entire file |
|
||||||
| `x` | Select current line, if already selected, extend to next line |
|
| `x` | Select current line, if already selected, extend to next line |
|
||||||
| `` | Expand selection to parent syntax node TODO: pick a key |
|
| | Expand selection to parent syntax node TODO: pick a key |
|
||||||
| `J` | join lines inside selection |
|
| `J` | join lines inside selection |
|
||||||
| `K` | keep selections matching the regex TODO: overlapped by hover help |
|
| `K` | keep selections matching the regex TODO: overlapped by hover help |
|
||||||
| `Space` | keep only the primary selection TODO: overlapped by space mode |
|
| `Space` | keep only the primary selection TODO: overlapped by space mode |
|
||||||
|
@ -144,6 +144,18 @@ Jumps to various locations.
|
||||||
| `i` | Go to implementation |
|
| `i` | Go to implementation |
|
||||||
| `a` | Go to the last accessed/alternate file |
|
| `a` | Go to the last accessed/alternate file |
|
||||||
|
|
||||||
|
## Match mode
|
||||||
|
|
||||||
|
Enter this mode using `m` from normal mode. See the relavant section
|
||||||
|
in [Usage](./usage.md#surround) for an explanation about surround usage.
|
||||||
|
|
||||||
|
| Key | Description |
|
||||||
|
| ----- | ----------- |
|
||||||
|
| `m` | Goto matching bracket |
|
||||||
|
| `s` `<char>` | Surround current selection with `<char>` |
|
||||||
|
| `r` `<from><to>` | Replace surround character `<from>` with `<to>` |
|
||||||
|
| `d` `<char>` | Delete surround character `<char>` |
|
||||||
|
|
||||||
## Object mode
|
## Object mode
|
||||||
|
|
||||||
TODO: Mappings for selecting syntax nodes (a superset of `[`).
|
TODO: Mappings for selecting syntax nodes (a superset of `[`).
|
||||||
|
|
|
@ -1 +1,26 @@
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
|
(Currently not fully documented, see the [keymappings](./keymap.md) list for more.)
|
||||||
|
|
||||||
|
## Surround
|
||||||
|
|
||||||
|
Functionality similar to [vim-surround](https://github.com/tpope/vim-surround) is built into
|
||||||
|
helix. The keymappings have been inspired from [vim-sandwich](https://github.com/machakann/vim-sandwich):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- `ms` - Add surround characters
|
||||||
|
- `mr` - Replace surround characters
|
||||||
|
- `md` - 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 file
|
||||||
|
- `s` 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.
|
||||||
|
|
|
@ -3324,7 +3324,7 @@ fn surround(cx: &mut Context) {
|
||||||
cx.count = count;
|
cx.count = count;
|
||||||
match ch {
|
match ch {
|
||||||
'm' => match_brackets(cx),
|
'm' => match_brackets(cx),
|
||||||
'a' => surround_add(cx),
|
's' => surround_add(cx),
|
||||||
'r' => surround_replace(cx),
|
'r' => surround_replace(cx),
|
||||||
'd' => {
|
'd' => {
|
||||||
surround_delete(cx);
|
surround_delete(cx);
|
||||||
|
|
Loading…
Reference in New Issue