diff --git a/src/reader.rs b/src/reader.rs index ee9f2fe11..b2f5fb78a 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1671,7 +1671,7 @@ fn update_command_line_from_history_search(&mut self) { 0..self.command_line.len(), new_text, ); - if self.history_search.by_prefix() { + if self.history_search.by_prefix() && !self.history_search.search_string().is_empty() { self.command_line .set_position(self.history_search.search_string().len()); } diff --git a/tests/pexpects/bind.py b/tests/pexpects/bind.py index e9c939239..fdbe9b629 100644 --- a/tests/pexpects/bind.py +++ b/tests/pexpects/bind.py @@ -364,6 +364,14 @@ send('\x02\x02\x02') # ctrl-b, backward-char sendline('\x1bu') # alt+u, upcase word expect_prompt("fooBAR") +sendline('bind ctrl-z history-prefix-search-backward') +expect_prompt() +sendline("echo this continues") +expect_prompt() +send("\x1A") +sendline(" with this text") +expect_prompt("this continues with this text") + sendline(""" bind ctrl-g " commandline --insert 'echo foo ar'