From a56085f059b2444812353e715e5a4b93ea75b018 Mon Sep 17 00:00:00 2001 From: YummyOreo Date: Sat, 13 Jan 2024 09:15:49 -0800 Subject: feat(ui): vim mode (#1553) * feat(config): add vim option to config * feat(ui): simple vim mode * fix(windows): windows sadly doesn't support the stuff * feat(ui): blinking * fix(merge) * revert: reverts some debugging stuff * feat(ui): changes the defaut to insert, don't know what should be the default * feat(ui): implements some vim parity * doc: adds this to the docs * docs(keybindings): adds vim mode keybindsings to the list of keybindings * refactor: rustfmt and remove the docs for pr in own repo * refactor: use execute! * Update atuin/src/command/client/search/interactive.rs --------- Co-authored-by: Ellie Huxtable --- atuin-client/config.toml | 6 +++++- atuin-client/src/settings.rs | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'atuin-client') diff --git a/atuin-client/config.toml b/atuin-client/config.toml index 511662cc..29581d1f 100644 --- a/atuin-client/config.toml +++ b/atuin-client/config.toml @@ -125,6 +125,10 @@ # This applies for new installs. Old installs will keep the old behaviour unless configured otherwise. enter_accept = true + +## Defaults to false. If enabled you may use 'j' and 'k' to navigate the history list and 'i' to enter Insert mode. +# vim = false + #[stats] # Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl #common_subcommands = [ @@ -136,6 +140,6 @@ enter_accept = true # "pnpm", # "kubectl", #] -# +# # Set commands that should be totally stripped and ignored from stats #common_prefix = ["sudo"] diff --git a/atuin-client/src/settings.rs b/atuin-client/src/settings.rs index 0798a890..ea01961c 100644 --- a/atuin-client/src/settings.rs +++ b/atuin-client/src/settings.rs @@ -201,6 +201,7 @@ pub struct Settings { pub max_preview_height: u16, pub show_help: bool, pub exit_mode: ExitMode, + pub vim: bool, pub word_jump_mode: WordJumpMode, pub word_chars: String, pub scroll_context_lines: usize, @@ -436,6 +437,7 @@ impl Settings { // New users will get the new default, that is more similar to what they are used to. .set_default("enter_accept", false)? .set_default("sync.records", false)? + .set_default("vim", false)? .add_source( Environment::with_prefix("atuin") .prefix_separator("_") -- cgit v1.3.1