@ -442,7 +442,7 @@ and <a href="./usage.html#textobject">textobject</a> usage.</p>
< tr > < td > < code > ]space< / code > < / td > < td > Add newline below< / td > < td > < code > add_newline_below< / code > < / td > < / tr >
< / tbody > < / table >
< / div >
< h2 id = "insert-mode" > < a class = "header" href = "#insert-mode" > Insert M ode< / a > < / h2 >
< h2 id = "insert-mode" > < a class = "header" href = "#insert-mode" > Insert m ode< / a > < / h2 >
< p > 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
@ -451,41 +451,31 @@ strongly encouraged to learn the modal editing paradigm to get the smoothest
experience.< / p >
< div class = "table-wrapper" > < table > < thead > < tr > < th > Key< / th > < th > Description< / th > < th > Command< / th > < / tr > < / thead > < tbody >
< tr > < td > < code > Escape< / code > < / td > < td > Switch to normal mode< / td > < td > < code > normal_mode< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-s< / code > < / td > < td > Commit undo checkpoint< / td > < td > < code > commit_undo_checkpoint< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-x< / code > < / td > < td > Autocomplete< / td > < td > < code > completion< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-r< / code > < / td > < td > Insert a register content< / td > < td > < code > insert_register< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-w< / code > , < code > Alt-Backspace< / code > , < code > Ctrl-Backspace< / code > < / td > < td > Delete previous word< / td > < td > < code > delete_word_backward< / code > < / td > < / tr >
< tr > < td > < code > Alt-d< / code > , < code > Alt-Delete< / code > , < code > Ctrl-Delete< / code > < / td > < td > Delete next word< / td > < td > < code > delete_word_forward< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-w< / code > , < code > Alt-Backspace< / code > < / td > < td > Delete previous word< / td > < td > < code > delete_word_backward< / code > < / td > < / tr >
< tr > < td > < code > Alt-d< / code > , < code > Alt-Delete< / code > < / td > < td > Delete next word< / td > < td > < code > delete_word_forward< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-u< / code > < / td > < td > Delete to start of line< / td > < td > < code > kill_to_line_start< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-k< / code > < / td > < td > Delete to end of line< / td > < td > < code > kill_to_line_end< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-h< / code > , < code > Backspace< / code > < / td > < td > Delete previous char< / td > < td > < code > delete_char_backward< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-d< / code > , < code > Delete< / code > < / td > < td > Delete next char< / td > < td > < code > delete_char_forward< / code > < / td > < / tr >
< tr > < td > < code > Ctrl-j< / code > , < code > Enter< / code > < / td > < td > Insert new line< / td > < td > < code > insert_newline< / code > < / td > < / tr >
< tr > < td > < code > Backspace< / code > , < code > Ctrl-h< / code > < / td > < td > Delete previous char< / td > < td > < code > delete_char_backward< / code > < / td > < / tr >
< tr > < td > < code > Delete< / code > , < code > Ctrl-d< / code > < / td > < td > Delete next char< / td > < td > < code > delete_char_forward< / code > < / td > < / tr >
< / tbody > < / table >
< / div >
< p > 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:< / p >
< pre > < code class = "language-toml" > [keys.insert]
" up" = " move_line_up"
" down" = " move_line_down"
" left" = " move_char_left"
" right" = " move_char_right"
" C-b" = " move_char_left"
" 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"
< / code > < / pre >
< p > These keys are not recommended, but are included for new users less familiar
with modal editors.< / p >
< div class = "table-wrapper" > < table > < thead > < tr > < th > Key< / th > < th > Description< / th > < th > Command< / th > < / tr > < / thead > < tbody >
< tr > < td > < code > Up< / code > < / td > < td > Move to previous line< / td > < td > < code > move_line_up< / code > < / td > < / tr >
< tr > < td > < code > Down< / code > < / td > < td > Move to next line< / td > < td > < code > move_line_down< / code > < / td > < / tr >
< tr > < td > < code > Left< / code > < / td > < td > Backward a char< / td > < td > < code > move_char_left< / code > < / td > < / tr >
< tr > < td > < code > Right< / code > < / td > < td > Forward a char< / td > < td > < code > move_char_right< / code > < / td > < / tr >
< tr > < td > < code > PageUp< / code > < / td > < td > Move one page up< / td > < td > < code > page_up< / code > < / td > < / tr >
< tr > < td > < code > PageDown< / code > < / td > < td > Move one page down< / td > < td > < code > page_down< / code > < / td > < / tr >
< tr > < td > < code > Home< / code > < / td > < td > Move to line start< / td > < td > < code > goto_line_start< / code > < / td > < / tr >
< tr > < td > < code > End< / code > < / td > < td > Move to line end< / td > < td > < code > goto_line_end_newline< / code > < / td > < / tr >
< / tbody > < / table >
< / div >
< h2 id = "select--extend-mode" > < a class = "header" href = "#select--extend-mode" > Select / extend mode< / a > < / h2 >
< p > This mode echoes Normal mode, but changes any movements to extend
selections rather than replace them. Goto motions are also changed to