# ErgoHelix
| | | | | |
| --- | --- | --- | --- | --- |
| `:quit`
`:quit-all` | `:buffer-close`
`:buffer-close-all` | `insert_mode`
`shell_insert_output`
`change_selection_noyank`
`shell_pipe` | `append_mode`
`shell_append_output`
`change_selection_noyank`
`shell_pipe` | `buffer_picker` |
| `select_mode`
`select_all` | `:write`
`:write-all`
`save_selection` | `extend_line_below`
`shrink_to_line_bounds` | `search_selection`, `search`
`search_selection`, `global_search` | `search_next`
`search_prev` |
| `undo`
`redo`
`jump_backward`
`jump_forward` | `delete_selection`
`delete_selection_noyank` | `yank` | `paste_before`
`replace_with_yanked` | `paste_after`
`replace_with_yanked` |
| | | | | |
| --- | --- | --- | --- | --- |
| `goto_first_nonwhitespace`
`move_parent_node_start`
`goto_file_start`
`goto_line_start` | `move_prev_word_start`
`move_prev_long_word_start`
`page_up` | `move_visual_line_up`
`copy_selection_on_prev_line`
`open_above` | `move_next_word_end`
`move_next_long_word_start`
`page_down` | Match Mode |
| `goto_line_end`
`move_parent_node_end`
`goto_last_line` | `move_char_left`
`select_prev_sibling`
`expand_selection` | `move_visual_line_down`
`copy_selection_on_next_line`
`open_below` | `move_char_right`
`select_next_sibling`
`shrink_selection` | `command_mode`
`command_mode` |
| `rotate_selections_backward`
`rotate_selection_contents_backward` | `rotate_selections_forward`
`rotate_selection_contents_forward` | `goto_word` | | `toggle_comments`
`toggle_block_comments`
`toggle_line_comments` |
| Key | Description | Command |
| ----------- | ------------------------------------------ | -------------------- |
| `esc` | Collapse selection onto a single cursor | `collapse_selection` |
| `space` | Space | Space Mode |
| `tab` | Indent selection | `indent` |
| `Shift-tab` | Unindent selection | `unindent` |
| `ret` | Apply code action (**LSP**) | `code_action` |
| `'`, `"` | Select a register to yank to or paste from | `select_register` |
### Space mode
| Key | Description | Command |
| ------- | -------------------------------------------------------------------------------- | ------------------------------------------ |
| `space` | Show documentation for item under cursor in a popup (**LSP**) | `hover` |
| `tab` | Align selection in columns | `align_selections` |
| `ret` | Go to files/URLs in selections | `goto_file` |
| `a` | Flip selection cursor and anchor | `flip_selections` |
| `A` | Ensures the selection is in forward direction | `ensure_selections_forward` |
| `b` | Debug | Debug Mode |
| `c` | Case | Case Mode |
| `d` | Go to definition (**LSP**) | `goto_definition` |
| `e` | Select all regex matches inside selections | `select_regex` |
| `E` | Split selection into sub selections on regex matches | `split_selection` |
| `f` | Format selection (**LSP**) | `format_selections` |
| `h` | Select symbol references (**LSP**) | `select_references_to_symbol_under_cursor` |
| `i` | Go to implementation (**LSP**) | `goto_implementation` |
| `j` | Join lines inside selection | `join_selections` |
| `J` | Join lines inside selection and select the inserted space | `join_selections_space` |
| `k` | Keep selections matching the regex | `keep_selections` |
| `K` | Remove selections matching the regex | `remove_selections` |
| `l` | Split selection on newlines | `split_selection_on_newline` |
| `m` | Merge selections | `merge_selections` |
| `M` | Merge consecutive selections | `merge_consecutive_selections` |
| `n` | Select all sibling nodes in syntax tree (**TS**) | `select_all_siblings` |
| `N` | Select all children nodes in syntax tree (**TS**) | `select_all_children` |
| `o` | Open document diagnostics picker (**LSP**) | `diagnostics_picker` |
| `O` | Open workspace diagnostics picker (**LSP**) | `workspace_diagnostics_picker` |
| `p` | Keep only the primary selection | `keep_primary_selection` |
| `P` | Remove the primary selection | `remove_primary_selection` |
| `r` | Go to references (**LSP**) | `goto_reference` |
| `R` | Rename symbol (**LSP**) | `rename_symbol` |
| `s` | Open document symbol picker (**LSP** or **TS**) | `lsp_or_syntax_symbol_picker` |
| `S` | Open workspace symbol picker (**LSP** or **TS**) | `lsp_or_syntax_workspace_symbol_picker` |
| `t` | Go to type definition (**LSP**) | `goto_type_definition` |
| `w` | Trim whitespace from the selection | `trim_selections` |
| `x` | Pipe each selection into shell command, keep selections where command returned 0 | `shell_keep_pipe` |
| `X` | Pipe each selection into shell command, ignoring output | `shell_pipe_to` |
| `y` | Open jumplist picker | `jumplist_picker` |
| `z` | Move backward in history | `earlier` |
| `Z` | Move forward in history | `later` |
### Match mode
| Key | Description | Command |
| ---- | ----------------------------------------------- | -------------------------- |
| <\*> | Goto matching bracket (**TS**) | `match_brackets` |
| `a` | Select around textobject | `select_textobject_around` |
| `d` | Delete surround character `` | `surround_delete` |
| `i` | Select inside textobject | `select_textobject_inner` |
| `r` | Replace surround character `` with `` | `surround_replace` |
| `s` | Surround current selection with `` | `surround_add` |