diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 15ccc247..4e13f74a 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -2292,8 +2292,10 @@ fn open(cx: &mut Context, open: Open) { let mut offs = 0; let mut transaction = Transaction::change_by_selection(contents, selection, |range| { - let cursor_line = range.cursor_line(text); - + let cursor_line = text.char_to_line(match open { + Open::Below => graphemes::prev_grapheme_boundary(text, range.to()), + Open::Above => range.from(), + }); let new_line = match open { // adjust position to the end of the line (next line - 1) Open::Below => cursor_line + 1,