diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 57df47a7..ca977f80 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -3738,8 +3738,11 @@ fn surround_replace(cx: &mut Context) { let transaction = Transaction::change( doc.text(), change_pos.iter().enumerate().map(|(i, &pos)| { - let ch = if i % 2 == 0 { open } else { close }; - (pos, pos + 1, Some(Tendril::from_char(ch))) + if i % 2 == 0 { + (pos, pos + 1, Some(Tendril::from_char(open))) + } else { + (pos.saturating_sub(1), pos, Some(Tendril::from_char(close))) + } }), ); doc.apply(&transaction, view.id);