diff --git a/keyfork-prompt/src/lib.rs b/keyfork-prompt/src/lib.rs index d994925..726c26a 100644 --- a/keyfork-prompt/src/lib.rs +++ b/keyfork-prompt/src/lib.rs @@ -111,7 +111,16 @@ where input.pop(); } KeyCode::Char('w') if k.modifiers.contains(KeyModifiers::CONTROL) => { - while input.pop().is_some_and(|c| !c.is_whitespace()) {} + let mut has_deleted_text = true; + while input.pop().is_some_and(char::is_whitespace) { + has_deleted_text = false; + } + while input.pop().is_some_and(|c| !c.is_whitespace()) { + has_deleted_text = true; + } + if !input.is_empty() && has_deleted_text { + input.push(' '); + } } KeyCode::Char(' ') => { if !input.chars().rev().next().is_some_and(char::is_whitespace) {