diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 54dcc98f..e2d10d21 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -318,6 +318,7 @@ impl MappableCommand { redo, "Redo change", earlier, "Move backward in history", later, "Move forward in history", + commit_undo_checkpoint, "Commit changes to a new checkpoint", yank, "Yank selection", yank_joined_to_clipboard, "Join and yank selections to clipboard", yank_main_selection_to_clipboard, "Yank main selection to clipboard", @@ -3001,6 +3002,11 @@ fn later(cx: &mut Context) { } } +fn commit_undo_checkpoint(cx: &mut Context) { + let (view, doc) = current!(cx.editor); + doc.append_changes_to_history(view.id); +} + // Yank / Paste fn yank(cx: &mut Context) { diff --git a/helix-term/src/keymap/default.rs b/helix-term/src/keymap/default.rs index db24e97a..a8ff8be9 100644 --- a/helix-term/src/keymap/default.rs +++ b/helix-term/src/keymap/default.rs @@ -326,6 +326,7 @@ pub fn default() -> HashMap { "C-w" => delete_word_backward, "A-backspace" => delete_word_backward, "A-d" => delete_word_forward, + "C-s" => commit_undo_checkpoint, "left" => move_char_left, "C-b" => move_char_left,