diff --git a/atuin/src/command/client/search/interactive.rs b/atuin/src/command/client/search/interactive.rs index 8c6a672b..bd25cf7b 100644 --- a/atuin/src/command/client/search/interactive.rs +++ b/atuin/src/command/client/search/interactive.rs @@ -265,6 +265,18 @@ impl State { // First handle keymap specific keybindings. match self.keymap_mode { KeymapMode::VimNormal => match input.code { + KeyCode::Char('/') if !ctrl => { + self.search.input.clear(); + self.set_keymap_cursor(settings, "vim_insert"); + self.keymap_mode = KeymapMode::VimInsert; + return InputAction::Continue; + } + KeyCode::Char('?') if !ctrl => { + self.search.input.clear(); + self.set_keymap_cursor(settings, "vim_insert"); + self.keymap_mode = KeymapMode::VimInsert; + return InputAction::Continue; + } KeyCode::Char('j') if !ctrl => { return self.handle_search_down(settings, true); } @@ -296,6 +308,12 @@ impl State { self.keymap_mode = KeymapMode::VimInsert; return InputAction::Continue; } + KeyCode::Char('I') if !ctrl => { + self.search.input.start(); + self.set_keymap_cursor(settings, "vim_insert"); + self.keymap_mode = KeymapMode::VimInsert; + return InputAction::Continue; + } KeyCode::Char(_) if !ctrl => { return InputAction::Continue; }