diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index ca977f80..93867ee1 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -652,8 +652,13 @@ where let text = doc.text().slice(..); let selection = doc.selection(view.id).clone().transform(|range| { - search_fn(text, ch, range.head, count, inclusive) - .map_or(range, |pos| range.put(text, pos, extend)) + search_fn(text, ch, range.head, count, inclusive).map_or(range, |pos| { + if extend { + range.put(text, pos, true) + } else { + range.put(text, pos.saturating_sub(1), false) + } + }) }); doc.set_selection(view.id, selection); })