@ -314,7 +314,7 @@ Mappings in the style of [vim-unimpaired](https://github.com/tpope/vim-unimpaire
| `[space` | Add newline above | `add_newline_above` |
| `[space` | Add newline above | `add_newline_above` |
| `]space` | Add newline below | `add_newline_below` |
| `]space` | Add newline below | `add_newline_below` |
## Insert M ode
## Insert m ode
Insert mode bindings are somewhat 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
be a modal editor, and this is reflected in the user experience and internal
@ -326,42 +326,30 @@ experience.
| Key | Description | Command |
| Key | Description | Command |
| ----- | ----------- | ------- |
| ----- | ----------- | ------- |
| `Escape` | Switch to normal mode | `normal_mode` |
| `Escape` | Switch to normal mode | `normal_mode` |
| `Ctrl-s` | Commit undo checkpoint | `commit_undo_checkpoint` |
| `Ctrl-x` | Autocomplete | `completion` |
| `Ctrl-x` | Autocomplete | `completion` |
| `Ctrl-r` | Insert a register content | `insert_register` |
| `Ctrl-r` | Insert a register content | `insert_register` |
| `Ctrl-w` , `Alt-Backspace` , `Ctrl-Backspace` | Delete previous word | `delete_word_backward` |
| `Ctrl-w` , `Alt-Backspace` | Delete previous word | `delete_word_backward` |
| `Alt-d` , `Alt-Delete` , `Ctrl-Delete` | Delete next word | `delete_word_forward` |
| `Alt-d` , `Alt-Delete` | Delete next word | `delete_word_forward` |
| `Ctrl-u` | Delete to start of line | `kill_to_line_start` |
| `Ctrl-u` | Delete to start of line | `kill_to_line_start` |
| `Ctrl-k` | Delete to end of line | `kill_to_line_end` |
| `Ctrl-k` | Delete to end of line | `kill_to_line_end` |
| `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` |
| `Ctrl-j` , `Enter` | Insert new line | `insert_newline` |
| `Backspace` , `Ctrl-h` | Delete previous char | `delete_char_backward` |
| `Delete` , `Ctrl-d` | Delete next char | `delete_char_forward` |
These keys are not recommended, but are included for new users less familiar
with modal editors.
However, if you really want navigation in insert mode, this is supported. An
example config that gives the ability to use arrow keys while still in insert
| Key | Description | Command |
mode:
| ----- | ----------- | ------- |
| `Up` | Move to previous line | `move_line_up` |
```toml
| `Down` | Move to next line | `move_line_down` |
[keys.insert]
| `Left` | Backward a char | `move_char_left` |
"up" = "move_line_up"
| `Right` | Forward a char | `move_char_right` |
"down" = "move_line_down"
| `PageUp` | Move one page up | `page_up` |
"left" = "move_char_left"
| `PageDown` | Move one page down | `page_down` |
"right" = "move_char_right"
| `Home` | Move to line start | `goto_line_start` |
"C-b" = "move_char_left"
| `End` | Move to line end | `goto_line_end_newline` |
"C-f" = "move_char_right"
"A-b" = "move_prev_word_end"
"C-left" = "move_prev_word_end"
"A-f" = "move_next_word_start"
"C-right" = "move_next_word_start"
"A-< " = "goto_file_start"
"A->" = "goto_file_end"
"pageup" = "page_up"
"pagedown" = "page_down"
"home" = "goto_line_start"
"C-a" = "goto_line_start"
"end" = "goto_line_end_newline"
"C-e" = "goto_line_end_newline"
"A-left" = "goto_line_start"
```
## Select / extend mode
## Select / extend mode