From 133971179eccb8a9846ad90dcf00f02d684c0bea Mon Sep 17 00:00:00 2001 From: Mat Jones Date: Fri, 17 Dec 2021 07:14:45 -0500 Subject: [PATCH] Add Alt+backspace and Ctrl+u keybinds for deleting by word and by line, respectively (#243) * remove unused environment var loading entire history into an env var * Add Alt+backspace and Ctrl+u keybinds for deleting by word and by line, respectively --- src/command/search.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/command/search.rs b/src/command/search.rs index 00e11f5..922f746 100644 --- a/src/command/search.rs +++ b/src/command/search.rs @@ -207,6 +207,23 @@ async fn key_handler( app.input.pop(); query_results(app, search_mode, db).await.unwrap(); } + // \u{7f} is escape sequence for backspace + Key::Alt('\u{7f}') => { + let words: Vec<&str> = app.input.split(' ').collect(); + if words.is_empty() { + return None; + } + if words.len() == 1 { + app.input = String::from(""); + } else { + app.input = words[0..(words.len() - 1)].join(" "); + } + query_results(app, search_mode, db).await.unwrap(); + } + Key::Ctrl('u') => { + app.input = String::from(""); + query_results(app, search_mode, db).await.unwrap(); + } Key::Down | Key::Ctrl('n') => { let i = match app.results_state.selected() { Some(i) => {