I realize this isn’t exactly Vim-like (rather less-like), but I think it would be a nice workflow improvement if the user could quit Atuin by pressing the ‘q’ key in vim-normal mode, much like the way it works in less (with Vim using :q, of course).
I’m not super familiar with the codebase, but I imagine it would a relatively simple implementation. Something like this (crates/atuin/src/command/client/search/interactive.rs:284):
let is_vim_mode = settings.keymap_mode_shell == KeymapMode::VimNormal;
// core input handling, common for all tabs
let common: Option<InputAction> = match input.code {
KeyCode::Char('c' | 'g') if ctrl => Some(InputAction::ReturnOriginal),
KeyCode::Esc if esc_allow_exit => Some(Self::handle_key_exit(settings)),
KeyCode::Char('q') if is_vim_mode => Some(Self::handle_key_exit(settings)),
// etc.
}