diff --git a/CHANGELOG.md b/CHANGELOG.md index fe2345ee..2b441b9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## 0.8.0-dev +## 0.7.1 + +### Fixed + +- Jumping between matches in backward vi search + ## 0.7.0 ### Added diff --git a/alacritty/src/input.rs b/alacritty/src/input.rs index 2be0c8c4..155fab07 100644 --- a/alacritty/src/input.rs +++ b/alacritty/src/input.rs @@ -176,10 +176,12 @@ impl Execute for Action { }, Action::ViAction(ViAction::SearchNext) => { let terminal = ctx.terminal(); - let origin = terminal - .visible_to_buffer(terminal.vi_mode_cursor.point) - .add_absolute(terminal, Boundary::Wrap, 1); let direction = ctx.search_direction(); + let vi_point = terminal.visible_to_buffer(terminal.vi_mode_cursor.point); + let origin = match direction { + Direction::Right => vi_point.add_absolute(terminal, Boundary::Wrap, 1), + Direction::Left => vi_point.sub_absolute(terminal, Boundary::Wrap, 1), + }; let regex_match = terminal.search_next(origin, direction, Side::Left, None); if let Some(regex_match) = regex_match { @@ -188,10 +190,12 @@ impl Execute for Action { }, Action::ViAction(ViAction::SearchPrevious) => { let terminal = ctx.terminal(); - let origin = terminal - .visible_to_buffer(terminal.vi_mode_cursor.point) - .sub_absolute(terminal, Boundary::Wrap, 1); let direction = ctx.search_direction().opposite(); + let vi_point = terminal.visible_to_buffer(terminal.vi_mode_cursor.point); + let origin = match direction { + Direction::Right => vi_point.add_absolute(terminal, Boundary::Wrap, 1), + Direction::Left => vi_point.sub_absolute(terminal, Boundary::Wrap, 1), + }; let regex_match = terminal.search_next(origin, direction, Side::Left, None); if let Some(regex_match) = regex_match {