aboutsummaryrefslogtreecommitdiff
path: root/book/src/keymap.md
diff options
context:
space:
mode:
Diffstat (limited to 'book/src/keymap.md')
-rw-r--r--book/src/keymap.md34
1 files changed, 18 insertions, 16 deletions
diff --git a/book/src/keymap.md b/book/src/keymap.md
index 698b504c..da4433f3 100644
--- a/book/src/keymap.md
+++ b/book/src/keymap.md
@@ -315,10 +315,12 @@ Mappings in the style of [vim-unimpaired](https://github.com/tpope/vim-unimpaire
## Insert Mode
-We support many readline/emacs style bindings in insert mode for
-convenience. These can be helpful for making simple modifications
-without escaping to normal mode, but beware that you will not have an
-undo-able "save point" until you return to normal mode.
+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. 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 |
| ----- | ----------- | ------- |
@@ -327,23 +329,23 @@ undo-able "save point" until you return to normal mode.
| `Ctrl-r` | Insert a register content | `insert_register` |
| `Ctrl-w`, `Alt-Backspace`, `Ctrl-Backspace` | Delete previous word | `delete_word_backward` |
| `Alt-d`, `Alt-Delete`, `Ctrl-Delete` | Delete next word | `delete_word_forward` |
-| `Alt-b`, `Ctrl-Left` | Backward a word | `move_prev_word_end` |
-| `Ctrl-b`, `Left` | Backward a char | `move_char_left` |
-| `Alt-f`, `Ctrl-Right` | Forward a word | `move_next_word_start` |
-| `Ctrl-f`, `Right` | Forward a char | `move_char_right` |
-| `Ctrl-e`, `End` | Move to line end | `goto_line_end_newline` |
-| `Ctrl-a`, `Home` | Move to line start | `goto_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-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` |
-| `Ctrl-p`, `Up` | Move to previous line | `move_line_up` |
-| `Ctrl-n`, `Down` | Move to next line | `move_line_down` |
-| `PageUp` | Move one page up | `page_up` |
-| `PageDown` | Move one page down | `page_down` |
-| `Alt->` | Go to end of buffer | `goto_file_end` |
-| `Alt-<` | Go to start of buffer | `goto_file_start` |
+
+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
+mode:
+
+```toml
+[keys.insert]
+up = "move_line_up"
+down = "move_line_down"
+left = "move_char_left"
+right = "move_char_right"
+```
## Select / extend mode