Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'book/src/keymap.md')
-rw-r--r--book/src/keymap.md350
1 files changed, 145 insertions, 205 deletions
diff --git a/book/src/keymap.md b/book/src/keymap.md
index 95662f71..139e8fdd 100644
--- a/book/src/keymap.md
+++ b/book/src/keymap.md
@@ -1,4 +1,4 @@
-## Keymap
+# Keymap
- [Normal mode](#normal-mode)
- [Movement](#movement)
@@ -13,35 +13,27 @@
- [Window mode](#window-mode)
- [Space mode](#space-mode)
- [Popup](#popup)
- - [Completion Menu](#completion-menu)
- - [Signature-help Popup](#signature-help-popup)
- [Unimpaired](#unimpaired)
-- [Insert mode](#insert-mode)
+- [Insert Mode](#insert-mode)
- [Select / extend mode](#select--extend-mode)
- [Picker](#picker)
- [Prompt](#prompt)
> 💡 Mappings marked (**LSP**) require an active language server for the file.
-> 💡 Mappings marked (**TS**) require a tree-sitter grammar for the file type.
-
-> ⚠️ Some terminals' default key mappings conflict with Helix's. If any of the mappings described on this page do not work as expected, check your terminal's mappings to ensure they do not conflict. See the [wiki](https://github.com/helix-editor/helix/wiki/Terminal-Support) for known conflicts.
+> 💡 Mappings marked (**TS**) require a tree-sitter grammar for the filetype.
## Normal mode
-Normal mode is the default mode when you launch helix. You can return to it from other modes by pressing the `Escape` key.
-
### Movement
> NOTE: Unlike Vim, `f`, `F`, `t` and `T` are not confined to the current line.
-> Hereafter, `<n>` represents an integer by typing a sequence of digits.
-
| Key | Description | Command |
| ----- | ----------- | ------- |
| `h`, `Left` | Move left | `move_char_left` |
-| `j`, `Down` | Move down | `move_visual_line_down` |
-| `k`, `Up` | Move up | `move_visual_line_up` |
+| `j`, `Down` | Move down | `move_line_down` |
+| `k`, `Up` | Move up | `move_line_up` |
| `l`, `Right` | Move right | `move_char_right` |
| `w` | Move next word start | `move_next_word_start` |
| `b` | Move previous word start | `move_prev_word_start` |
@@ -49,18 +41,18 @@ Normal mode is the default mode when you launch helix. You can return to it from
| `W` | Move next WORD start | `move_next_long_word_start` |
| `B` | Move previous WORD start | `move_prev_long_word_start` |
| `E` | Move next WORD end | `move_next_long_word_end` |
-| `t` | Find till next char | `find_till_char` |
+| `t` | Find 'till next char | `find_till_char` |
| `f` | Find next char | `find_next_char` |
-| `T` | Find till previous char | `till_prev_char` |
+| `T` | Find 'till previous char | `till_prev_char` |
| `F` | Find previous char | `find_prev_char` |
-| `<n>G`, `<n>gg` | Go to line number `<n>` | `goto_line` |
-| `Alt-.` | Repeat last motion (`f`, `t`, `m`, `[` or `]`) | `repeat_last_motion` |
+| `G` | Go to line number `<n>` | `goto_line` |
+| `Alt-.` | Repeat last motion (`f`, `t` or `m`) | `repeat_last_motion` |
| `Home` | Move to the start of the line | `goto_line_start` |
| `End` | Move to the end of the line | `goto_line_end` |
| `Ctrl-b`, `PageUp` | Move page up | `page_up` |
| `Ctrl-f`, `PageDown` | Move page down | `page_down` |
-| `Ctrl-u` | Move cursor and page half page up | `page_cursor_half_up` |
-| `Ctrl-d` | Move cursor and page half page down | `page_cursor_half_down` |
+| `Ctrl-u` | Move half page up | `half_page_up` |
+| `Ctrl-d` | Move half page down | `half_page_down` |
| `Ctrl-i` | Jump forward on the jumplist | `jump_forward` |
| `Ctrl-o` | Jump backward on the jumplist | `jump_backward` |
| `Ctrl-s` | Save the current selection to the jumplist | `save_selection` |
@@ -91,7 +83,7 @@ Normal mode is the default mode when you launch helix. You can return to it from
| `"` `<reg>` | Select a register to yank to or paste from | `select_register` |
| `>` | Indent selection | `indent` |
| `<` | Unindent selection | `unindent` |
-| `=` | Format selection (**LSP**) | `format_selections` |
+| `=` | Format selection (currently nonfunctional/disabled) (**LSP**) | `format_selections` |
| `d` | Delete selection | `delete_selection` |
| `Alt-d` | Delete selection, without yanking | `delete_selection_noyank` |
| `c` | Change selection (delete and enter insert mode) | `change_selection` |
@@ -114,47 +106,41 @@ Normal mode is the default mode when you launch helix. You can return to it from
### Selection manipulation
-| Key | Description | Command |
-| ----- | ----------- | ------- |
-| `s` | Select all regex matches inside selections | `select_regex` |
-| `S` | Split selection into sub selections on regex matches | `split_selection` |
-| `Alt-s` | Split selection on newlines | `split_selection_on_newline` |
-| `Alt-minus` | Merge selections | `merge_selections` |
-| `Alt-_` | Merge consecutive selections | `merge_consecutive_selections` |
-| `&` | Align selection in columns | `align_selections` |
-| `_` | Trim whitespace from the selection | `trim_selections` |
-| `;` | Collapse selection onto a single cursor | `collapse_selection` |
-| `Alt-;` | Flip selection cursor and anchor | `flip_selections` |
-| `Alt-:` | Ensures the selection is in forward direction | `ensure_selections_forward` |
-| `,` | Keep only the primary selection | `keep_primary_selection` |
-| `Alt-,` | Remove the primary selection | `remove_primary_selection` |
-| `C` | Copy selection onto the next line (Add cursor below) | `copy_selection_on_next_line` |
-| `Alt-C` | Copy selection onto the previous line (Add cursor above) | `copy_selection_on_prev_line` |
-| `(` | Rotate main selection backward | `rotate_selections_backward` |
-| `)` | Rotate main selection forward | `rotate_selections_forward` |
-| `Alt-(` | Rotate selection contents backward | `rotate_selection_contents_backward` |
-| `Alt-)` | Rotate selection contents forward | `rotate_selection_contents_forward` |
-| `%` | Select entire file | `select_all` |
-| `x` | Select current line, if already selected, extend to next line | `extend_line_below` |
-| `X` | Extend selection to line bounds (line-wise selection) | `extend_to_line_bounds` |
-| `Alt-x` | Shrink selection to line bounds (line-wise selection) | `shrink_to_line_bounds` |
-| `J` | Join lines inside selection | `join_selections` |
-| `Alt-J` | Join lines inside selection and select the inserted space | `join_selections_space` |
-| `K` | Keep selections matching the regex | `keep_selections` |
-| `Alt-K` | Remove selections matching the regex | `remove_selections` |
-| `Ctrl-c` | Comment/uncomment the selections | `toggle_comments` |
-| `Alt-o`, `Alt-up` | Expand selection to parent syntax node (**TS**) | `expand_selection` |
-| `Alt-i`, `Alt-down` | Shrink syntax tree object selection (**TS**) | `shrink_selection` |
-| `Alt-p`, `Alt-left` | Select previous sibling node in syntax tree (**TS**) | `select_prev_sibling` |
-| `Alt-n`, `Alt-right` | Select next sibling node in syntax tree (**TS**) | `select_next_sibling` |
-| `Alt-a` | Select all sibling nodes in syntax tree (**TS**) | `select_all_siblings` |
-| `Alt-I`, `Alt-Shift-down`| Select all children nodes in syntax tree (**TS**) | `select_all_children` |
-| `Alt-e` | Move to end of parent node in syntax tree (**TS**) | `move_parent_node_end` |
-| `Alt-b` | Move to start of parent node in syntax tree (**TS**) | `move_parent_node_start` |
+| Key | Description | Command |
+| ----- | ----------- | ------- |
+| `s` | Select all regex matches inside selections | `select_regex` |
+| `S` | Split selection into subselections on regex matches | `split_selection` |
+| `Alt-s` | Split selection on newlines | `split_selection_on_newline` |
+| `&` | Align selection in columns | `align_selections` |
+| `_` | Trim whitespace from the selection | `trim_selections` |
+| `;` | Collapse selection onto a single cursor | `collapse_selection` |
+| `Alt-;` | Flip selection cursor and anchor | `flip_selections` |
+| `Alt-:` | Ensures the selection is in forward direction | `ensure_selections_forward` |
+| `,` | Keep only the primary selection | `keep_primary_selection` |
+| `Alt-,` | Remove the primary selection | `remove_primary_selection` |
+| `C` | Copy selection onto the next line (Add cursor below) | `copy_selection_on_next_line` |
+| `Alt-C` | Copy selection onto the previous line (Add cursor above) | `copy_selection_on_prev_line` |
+| `(` | Rotate main selection backward | `rotate_selections_backward` |
+| `)` | Rotate main selection forward | `rotate_selections_forward` |
+| `Alt-(` | Rotate selection contents backward | `rotate_selection_contents_backward` |
+| `Alt-)` | Rotate selection contents forward | `rotate_selection_contents_forward` |
+| `%` | Select entire file | `select_all` |
+| `x` | Select current line, if already selected, extend to next line | `extend_line_below` |
+| `X` | Extend selection to line bounds (line-wise selection) | `extend_to_line_bounds` |
+| `Alt-x` | Shrink selection to line bounds (line-wise selection) | `shrink_to_line_bounds` |
+| `J` | Join lines inside selection | `join_selections` |
+| `Alt-J` | Join lines inside selection and select space | `join_selections_space` |
+| `K` | Keep selections matching the regex | `keep_selections` |
+| `Alt-K` | Remove selections matching the regex | `remove_selections` |
+| `Ctrl-c` | Comment/uncomment the selections | `toggle_comments` |
+| `Alt-o`, `Alt-up` | Expand selection to parent syntax node (**TS**) | `expand_selection` |
+| `Alt-i`, `Alt-down` | Shrink syntax tree object selection (**TS**) | `shrink_selection` |
+| `Alt-p`, `Alt-left` | Select previous sibling node in syntax tree (**TS**) | `select_prev_sibling` |
+| `Alt-n`, `Alt-right` | Select next sibling node in syntax tree (**TS**) | `select_next_sibling` |
### Search
-Search commands all operate on the `/` register by default. To use a different register, use `"<char>`.
+Search commands all operate on the `/` register by default. Use `"<char>` to operate on a different one.
| Key | Description | Command |
| ----- | ----------- | ------- |
@@ -162,8 +148,7 @@ Search commands all operate on the `/` register by default. To use a different r
| `?` | Search for previous pattern | `rsearch` |
| `n` | Select next search match | `search_next` |
| `N` | Select previous search match | `search_prev` |
-| `*` | Use current selection as the search pattern, automatically wrapping with `\b` on word boundaries | `search_selection_detect_word_boundaries` |
-| `Alt-*` | Use current selection as the search pattern | `search_selection` |
+| `*` | Use current selection as the search pattern | `search_selection` |
### Minor modes
@@ -180,31 +165,29 @@ These sub-modes are accessible from normal mode and typically switch back to nor
| `Ctrl-w` | Enter [window mode](#window-mode) | N/A |
| `Space` | Enter [space mode](#space-mode) | N/A |
-These modes (except command mode) can be configured by
-[remapping keys](https://docs.helix-editor.com/remapping.html#minor-modes).
-
#### View mode
Accessed by typing `z` in [normal mode](#normal-mode).
View mode is intended for scrolling and manipulating the view without changing
the selection. The "sticky" variant of this mode (accessed by typing `Z` in
-normal mode) is persistent and can be exited using the escape key. This is
-useful when you're simply looking over text and not actively editing it.
-
-
-| Key | Description | Command |
-| ----- | ----------- | ------- |
-| `z`, `c` | Vertically center the line | `align_view_center` |
-| `t` | Align the line to the top of the screen | `align_view_top` |
-| `b` | Align the line to the bottom of the screen | `align_view_bottom` |
-| `m` | Align the line to the middle of the screen (horizontally) | `align_view_middle` |
-| `j`, `down` | Scroll the view downwards | `scroll_down` |
-| `k`, `up` | Scroll the view upwards | `scroll_up` |
-| `Ctrl-f`, `PageDown` | Move page down | `page_down` |
-| `Ctrl-b`, `PageUp` | Move page up | `page_up` |
-| `Ctrl-u` | Move cursor and page half page up | `page_cursor_half_up` |
-| `Ctrl-d` | Move cursor and page half page down | `page_cursor_half_down` |
+normal mode) is persistent; use the Escape key to return to normal mode after
+usage (useful when you're simply looking over text and not actively editing
+it).
+
+
+| Key | Description | Command |
+| ----- | ----------- | ------- |
+| `z`, `c` | Vertically center the line | `align_view_center` |
+| `t` | Align the line to the top of the screen | `align_view_top` |
+| `b` | Align the line to the bottom of the screen | `align_view_bottom` |
+| `m` | Align the line to the middle of the screen (horizontally) | `align_view_middle` |
+| `j`, `down` | Scroll the view downwards | `scroll_down` |
+| `k`, `up` | Scroll the view upwards | `scroll_up` |
+| `Ctrl-f`, `PageDown` | Move page down | `page_down` |
+| `Ctrl-b`, `PageUp` | Move page up | `page_up` |
+| `Ctrl-d` | Move half page down | `half_page_down` |
+| `Ctrl-u` | Move half page up | `half_page_up` |
#### Goto mode
@@ -214,12 +197,9 @@ Jumps to various locations.
| Key | Description | Command |
| ----- | ----------- | ------- |
-| `<n>g`| Go to line number `<n>` | `goto_file_start` |
-| `g` | Go to the start of the file | `goto_file_start` |
-| <code>&lt;n&gt;&#124;</code> | Go to column number `<n>` | `goto_column` |
-| <code>&#124;</code> | Go to the start of line | `goto_column` |
+| `g` | Go to line number `<n>` else start of file | `goto_file_start` |
| `e` | Go to the end of the file | `goto_last_line` |
-| `f` | Go to files in the selections | `goto_file` |
+| `f` | Go to files in the selection | `goto_file` |
| `h` | Go to the start of the line | `goto_line_start` |
| `l` | Go to the end of the line | `goto_line_end` |
| `s` | Go to first non-whitespace character of the line | `goto_first_nonwhitespace` |
@@ -235,15 +215,13 @@ Jumps to various locations.
| `n` | Go to next buffer | `goto_next_buffer` |
| `p` | Go to previous buffer | `goto_previous_buffer` |
| `.` | Go to last modification in current file | `goto_last_modification` |
-| `j` | Move down textual (instead of visual) line | `move_line_down` |
-| `k` | Move up textual (instead of visual) line | `move_line_up` |
-| `w` | Show labels at each word and select the word that belongs to the entered labels | `goto_word` |
#### Match mode
Accessed by typing `m` in [normal mode](#normal-mode).
-Please refer to the relevant sections for detailed explanations about [surround](./surround.md) and [textobjects](./textobjects.md).
+See the relevant section in [Usage](./usage.md) for an explanation about
+[surround](./usage.md#surround) and [textobject](./usage.md#textobjects) usage.
| Key | Description | Command |
| ----- | ----------- | ------- |
@@ -260,15 +238,15 @@ TODO: Mappings for selecting syntax nodes (a superset of `[`).
Accessed by typing `Ctrl-w` in [normal mode](#normal-mode).
-This layer is similar to Vim keybindings as Kakoune does not support windows.
+This layer is similar to Vim keybindings as Kakoune does not support window.
| Key | Description | Command |
| ----- | ------------- | ------- |
| `w`, `Ctrl-w` | Switch to next window | `rotate_view` |
| `v`, `Ctrl-v` | Vertical right split | `vsplit` |
| `s`, `Ctrl-s` | Horizontal bottom split | `hsplit` |
-| `f` | Go to files in the selections in horizontal splits | `goto_file` |
-| `F` | Go to files in the selections in vertical splits | `goto_file` |
+| `f` | Go to files in the selection in horizontal splits | `goto_file` |
+| `F` | Go to files in the selection in vertical splits | `goto_file` |
| `h`, `Ctrl-h`, `Left` | Move to left split | `jump_view_left` |
| `j`, `Ctrl-j`, `Down` | Move to split below | `jump_view_down` |
| `k`, `Ctrl-k`, `Up` | Move to split above | `jump_view_up` |
@@ -286,110 +264,77 @@ Accessed by typing `Space` in [normal mode](#normal-mode).
This layer is a kludge of mappings, mostly pickers.
-| Key | Description | Command |
-| ----- | ----------- | ------- |
-| `f` | Open file picker at LSP workspace root | `file_picker` |
-| `F` | Open file picker at current working directory | `file_picker_in_current_directory` |
-| `b` | Open buffer picker | `buffer_picker` |
-| `j` | Open jumplist picker | `jumplist_picker` |
-| `g` | Open changed file picker | `changed_file_picker` |
-| `G` | Debug (experimental) | N/A |
-| `k` | Show documentation for item under cursor in a [popup](#popup) (**LSP**) | `hover` |
-| `s` | Open document symbol picker (**LSP**) | `symbol_picker` |
-| `S` | Open workspace symbol picker (**LSP**) | `workspace_symbol_picker` |
-| `d` | Open document diagnostics picker (**LSP**) | `diagnostics_picker` |
-| `D` | Open workspace diagnostics picker (**LSP**) | `workspace_diagnostics_picker` |
-| `r` | Rename symbol (**LSP**) | `rename_symbol` |
-| `a` | Apply code action (**LSP**) | `code_action` |
-| `h` | Select symbol references (**LSP**) | `select_references_to_symbol_under_cursor` |
-| `'` | Open last fuzzy picker | `last_picker` |
-| `w` | Enter [window mode](#window-mode) | N/A |
-| `c` | Comment/uncomment selections | `toggle_comments` |
-| `C` | Block comment/uncomment selections | `toggle_block_comments` |
-| `Alt-c` | Line comment/uncomment selections | `toggle_line_comments` |
-| `p` | Paste system clipboard after selections | `paste_clipboard_after` |
-| `P` | Paste system clipboard before selections | `paste_clipboard_before` |
-| `y` | Yank selections to clipboard | `yank_to_clipboard` |
-| `Y` | Yank main selection to clipboard | `yank_main_selection_to_clipboard` |
-| `R` | Replace selections by clipboard contents | `replace_selections_with_clipboard` |
-| `/` | Global search in workspace folder | `global_search` |
-| `?` | Open command palette | `command_palette` |
-
-> 💡 Global search displays results in a fuzzy picker, use `Space + '` to bring it back up after opening a file.
+| Key | Description | Command |
+| ----- | ----------- | ------- |
+| `f` | Open file picker | `file_picker` |
+| `F` | Open file picker at current working directory | `file_picker_in_current_directory` |
+| `b` | Open buffer picker | `buffer_picker` |
+| `j` | Open jumplist picker | `jumplist_picker` |
+| `k` | Show documentation for item under cursor in a [popup](#popup) (**LSP**) | `hover` |
+| `s` | Open document symbol picker (**LSP**) | `symbol_picker` |
+| `S` | Open workspace symbol picker (**LSP**) | `workspace_symbol_picker` |
+| `d` | Open document diagnostics picker (**LSP**) | `diagnostics_picker` |
+| `D` | Open workspace diagnostics picker (**LSP**) | `workspace_diagnostics_picker` |
+| `r` | Rename symbol (**LSP**) | `rename_symbol` |
+| `a` | Apply code action (**LSP**) | `code_action` |
+| `'` | Open last fuzzy picker | `last_picker` |
+| `w` | Enter [window mode](#window-mode) | N/A |
+| `p` | Paste system clipboard after selections | `paste_clipboard_after` |
+| `P` | Paste system clipboard before selections | `paste_clipboard_before` |
+| `y` | Join and yank selections to clipboard | `yank_joined_to_clipboard` |
+| `Y` | Yank main selection to clipboard | `yank_main_selection_to_clipboard` |
+| `R` | Replace selections by clipboard contents | `replace_selections_with_clipboard` |
+| `/` | Global search in workspace folder | `global_search` |
+| `?` | Open command palette | `command_palette` |
+
+> TIP: Global search displays results in a fuzzy picker, use `Space + '` to bring it back up after opening a file.
##### Popup
-Displays documentation for item under cursor. Remapping currently not supported.
+Displays documentation for item under cursor.
| Key | Description |
| ---- | ----------- |
| `Ctrl-u` | Scroll up |
| `Ctrl-d` | Scroll down |
-##### Completion Menu
-
-Displays documentation for the selected completion item. Remapping currently not supported.
-
-| Key | Description |
-| ---- | ----------- |
-| `Shift-Tab`, `Ctrl-p`, `Up` | Previous entry |
-| `Tab`, `Ctrl-n`, `Down` | Next entry |
-| `Enter` | Close menu and accept completion |
-| `Ctrl-c` | Close menu and reject completion |
-
-Any other keypresses result in the completion being accepted.
-
-##### Signature-help Popup
-
-Displays the signature of the selected completion item. Remapping currently not supported.
-
-| Key | Description |
-| ---- | ----------- |
-| `Alt-p` | Previous signature |
-| `Alt-n` | Next signature |
-
#### Unimpaired
-These mappings are in the style of [vim-unimpaired](https://github.com/tpope/vim-unimpaired).
-
-| Key | Description | Command |
-| ----- | ----------- | ------- |
-| `]d` | Go to next diagnostic (**LSP**) | `goto_next_diag` |
-| `[d` | Go to previous diagnostic (**LSP**) | `goto_prev_diag` |
-| `]D` | Go to last diagnostic in document (**LSP**) | `goto_last_diag` |
-| `[D` | Go to first diagnostic in document (**LSP**) | `goto_first_diag` |
-| `]f` | Go to next function (**TS**) | `goto_next_function` |
-| `[f` | Go to previous function (**TS**) | `goto_prev_function` |
-| `]t` | Go to next type definition (**TS**) | `goto_next_class` |
-| `[t` | Go to previous type definition (**TS**) | `goto_prev_class` |
-| `]a` | Go to next argument/parameter (**TS**) | `goto_next_parameter` |
-| `[a` | Go to previous argument/parameter (**TS**) | `goto_prev_parameter` |
-| `]c` | Go to next comment (**TS**) | `goto_next_comment` |
-| `[c` | Go to previous comment (**TS**) | `goto_prev_comment` |
-| `]T` | Go to next test (**TS**) | `goto_next_test` |
-| `[T` | Go to previous test (**TS**) | `goto_prev_test` |
-| `]p` | Go to next paragraph | `goto_next_paragraph` |
-| `[p` | Go to previous paragraph | `goto_prev_paragraph` |
-| `]g` | Go to next change | `goto_next_change` |
-| `[g` | Go to previous change | `goto_prev_change` |
-| `]G` | Go to last change | `goto_last_change` |
-| `[G` | Go to first change | `goto_first_change` |
-| `[x` | Go to next (X)HTML element | `goto_next_xml_element` |
-| `]x` | Go to previous (X)HTML element | `goto_prev_xml_element` |
-| `]Space` | Add newline below | `add_newline_below` |
-| `[Space` | Add newline above | `add_newline_above` |
+Mappings in the style of [vim-unimpaired](https://github.com/tpope/vim-unimpaired).
+
+| Key | Description | Command |
+| ----- | ----------- | ------- |
+| `[d` | Go to previous diagnostic (**LSP**) | `goto_prev_diag` |
+| `]d` | Go to next diagnostic (**LSP**) | `goto_next_diag` |
+| `[D` | Go to first diagnostic in document (**LSP**) | `goto_first_diag` |
+| `]D` | Go to last diagnostic in document (**LSP**) | `goto_last_diag` |
+| `]f` | Go to next function (**TS**) | `goto_next_function` |
+| `[f` | Go to previous function (**TS**) | `goto_prev_function` |
+| `]t` | Go to next type definition (**TS**) | `goto_next_class` |
+| `[t` | Go to previous type definition (**TS**) | `goto_prev_class` |
+| `]a` | Go to next argument/parameter (**TS**) | `goto_next_parameter` |
+| `[a` | Go to previous argument/parameter (**TS**) | `goto_prev_parameter` |
+| `]c` | Go to next comment (**TS**) | `goto_next_comment` |
+| `[c` | Go to previous comment (**TS**) | `goto_prev_comment` |
+| `]T` | Go to next test (**TS**) | `goto_next_test` |
+| `]T` | Go to previous test (**TS**) | `goto_prev_test` |
+| `]p` | Go to next paragraph | `goto_next_paragraph` |
+| `[p` | Go to previous paragraph | `goto_prev_paragraph` |
+| `]g` | Go to next change | `goto_next_change` |
+| `[g` | Go to previous change | `goto_prev_change` |
+| `]G` | Go to first change | `goto_first_change` |
+| `[G` | Go to last change | `goto_last_change` |
+| `[Space` | Add newline above | `add_newline_above` |
+| `]Space` | Add newline below | `add_newline_below` |
## Insert mode
-Accessed by typing `i` in [normal mode](#normal-mode).
-
-Insert mode bindings are minimal by default. Helix is designed to
+Insert mode bindings are somewhat minimal by default. Helix is designed to
be a modal editor, and this is reflected in the user experience and internal
-mechanics. Changes to the text are only saved for undos when
-escaping from insert mode to normal mode.
-
-> 💡 New users are strongly encouraged to learn the modal editing paradigm
-> to get the smoothest experience.
+mechanics. For example, changes to the text are only saved for undos when
+escaping from insert mode to normal mode. For this reason, new users are
+strongly encouraged to learn the modal editing paradigm to get the smoothest
+experience.
| Key | Description | Command |
| ----- | ----------- | ------- |
@@ -401,7 +346,7 @@ escaping from insert mode to normal mode.
| `Alt-d`, `Alt-Delete` | Delete next word | `delete_word_forward` |
| `Ctrl-u` | Delete to start of line | `kill_to_line_start` |
| `Ctrl-k` | Delete to end of line | `kill_to_line_end` |
-| `Ctrl-h`, `Backspace`, `Shift-Backspace` | Delete previous char | `delete_char_backward` |
+| `Ctrl-h`, `Backspace` | Delete previous char | `delete_char_backward` |
| `Ctrl-d`, `Delete` | Delete next char | `delete_char_forward` |
| `Ctrl-j`, `Enter` | Insert new line | `insert_newline` |
@@ -419,8 +364,8 @@ with modal editors.
| `Home` | Move to line start | `goto_line_start` |
| `End` | Move to line end | `goto_line_end_newline` |
-As you become more comfortable with modal editing, you may want to disable some
-insert mode bindings. You can do this by editing your `config.toml` file.
+If you want to disable them in insert mode as you become more comfortable with modal editing, you can use
+the following in your `config.toml`:
```toml
[keys.insert]
@@ -436,11 +381,9 @@ end = "no_op"
## Select / extend mode
-Accessed by typing `v` in [normal mode](#normal-mode).
-
-Select mode echoes Normal mode, but changes any movements to extend
+This mode echoes Normal mode, but changes any movements to extend
selections rather than replace them. Goto motions are also changed to
-extend, so that `vgl`, for example, extends the selection to the end of
+extend, so that `vgl` for example extends the selection to the end of
the line.
Search is also affected. By default, `n` and `N` will remove the current
@@ -452,23 +395,20 @@ you to selectively add search terms to your selections.
## Picker
Keys to use within picker. Remapping currently not supported.
-See the documentation page on [pickers](./pickers.md) for more info.
-[Prompt](#prompt) keybinds also work in pickers, except where they conflict with picker keybinds.
-
-| Key | Description |
-| ----- | ------------- |
-| `Shift-Tab`, `Up`, `Ctrl-p` | Previous entry |
-| `Tab`, `Down`, `Ctrl-n` | Next entry |
-| `PageUp`, `Ctrl-u` | Page up |
-| `PageDown`, `Ctrl-d` | Page down |
-| `Home` | Go to first entry |
-| `End` | Go to last entry |
-| `Enter` | Open selected |
-| `Alt-Enter` | Open selected in the background without closing the picker |
-| `Ctrl-s` | Open horizontally |
-| `Ctrl-v` | Open vertically |
-| `Ctrl-t` | Toggle preview |
-| `Escape`, `Ctrl-c` | Close picker |
+
+| Key | Description |
+| ----- | ------------- |
+| `Shift-Tab`, `Up`, `Ctrl-p` | Previous entry |
+| `Tab`, `Down`, `Ctrl-n` | Next entry |
+| `PageUp`, `Ctrl-u` | Page up |
+| `PageDown`, `Ctrl-d` | Page down |
+| `Home` | Go to first entry |
+| `End` | Go to last entry |
+| `Enter` | Open selected |
+| `Ctrl-s` | Open horizontally |
+| `Ctrl-v` | Open vertically |
+| `Ctrl-t` | Toggle preview |
+| `Escape`, `Ctrl-c` | Close picker |
## Prompt
@@ -487,7 +427,7 @@ Keys to use within prompt, Remapping currently not supported.
| `Alt-d`, `Alt-Delete`, `Ctrl-Delete` | Delete next word |
| `Ctrl-u` | Delete to start of line |
| `Ctrl-k` | Delete to end of line |
-| `Backspace`, `Ctrl-h`, `Shift-Backspace` | Delete previous char |
+| `Backspace`, `Ctrl-h` | Delete previous char |
| `Delete`, `Ctrl-d` | Delete next char |
| `Ctrl-s` | Insert a word under doc cursor, may be changed to Ctrl-r Ctrl-w later |
| `Ctrl-p`, `Up` | Select previous history |