diff --git a/src/main/java/com/maddyhome/idea/vim/group/ChangeGroup.kt b/src/main/java/com/maddyhome/idea/vim/group/ChangeGroup.kt index aa155eef5..4f372e037 100644 --- a/src/main/java/com/maddyhome/idea/vim/group/ChangeGroup.kt +++ b/src/main/java/com/maddyhome/idea/vim/group/ChangeGroup.kt @@ -42,7 +42,6 @@ import com.maddyhome.idea.vim.newapi.ij import com.maddyhome.idea.vim.state.mode.Mode import com.maddyhome.idea.vim.undo.VimKeyBasedUndoService import com.maddyhome.idea.vim.undo.VimTimestampBasedUndoService -import kotlin.math.min /** * Provides all the insert/replace related functionality @@ -139,6 +138,7 @@ class ChangeGroup : VimChangeGroupBase() { context: ExecutionContext, range: TextRange, ) { + val startPos = editor.offsetToBufferPosition(caret.offset) val startOffset = editor.getLineStartForOffset(range.startOffset) val endOffset = editor.getLineEndForOffset(range.endOffset) val ijEditor = (editor as IjVimEditor).editor @@ -163,11 +163,7 @@ class ChangeGroup : VimChangeGroupBase() { } } val afterAction = { - val firstLine = editor.offsetToBufferPosition( - min(startOffset.toDouble(), endOffset.toDouble()).toInt() - ).line - val newOffset = injector.motion.moveCaretToLineStartSkipLeading(editor, firstLine) - caret.moveToOffset(newOffset) + caret.moveToOffset(injector.motion.moveCaretToLineStartSkipLeading(editor, startPos.line)) restoreCursor(editor, caret, (caret as IjVimCaret).caret.logicalPosition.line) } if (project != null) {