diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index bcec2b82c0af9dbdcc27d3d9289f351e4f5b21c4..07ba8a121f3ee45132c4354c7a072338273b2692 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -95,6 +95,7 @@ } ], "ctrl-o": "pane::GoBack", + "ctrl-i": "pane::GoForward", "ctrl-]": "editor::GoToDefinition", "escape": [ "vim::SwitchMode", @@ -145,6 +146,7 @@ "g shift-s": "project_symbols::Toggle", "g .": "editor::ToggleCodeActions", // zed specific "g shift-a": "editor::FindAllReferences", // zed specific + "g space": "editor::OpenExcerpts", // zed specific "g *": [ "vim::MoveToNext", { @@ -582,11 +584,16 @@ } }, { - "context": "Editor && vim_mode == insert && !menu", + "context": "Editor && vim_mode == insert", "bindings": { "escape": "vim::NormalBefore", "ctrl-c": "vim::NormalBefore", - "ctrl-[": "vim::NormalBefore" + "ctrl-[": "vim::NormalBefore", + "ctrl-x ctrl-o": "editor::ShowCompletions", + "ctrl-x ctrl-a": "assistant::InlineAssist", // zed specific + "ctrl-x ctrl-c": "copilot::Suggest", // zed specific + "ctrl-x ctrl-l": "editor::ToggleCodeActions", // zed specific + "ctrl-x ctrl-z": "editor::Cancel" } }, { diff --git a/crates/vim/src/insert.rs b/crates/vim/src/insert.rs index fb567fab6a7aecc66931be5edca2ff0300536cac..ec2b8b50c909782109b81eb268937fce5b1e5cab 100644 --- a/crates/vim/src/insert.rs +++ b/crates/vim/src/insert.rs @@ -16,6 +16,7 @@ fn normal_before(_: &mut Workspace, action: &NormalBefore, cx: &mut ViewContext< vim.stop_recording_immediately(action.boxed_clone()); if count <= 1 || vim.workspace_state.replaying { vim.update_active_editor(cx, |editor, cx| { + editor.cancel(&Default::default(), cx); editor.change_selections(Some(Autoscroll::fit()), cx, |s| { s.move_cursors_with(|map, mut cursor, _| { *cursor.column_mut() = cursor.column().saturating_sub(1);