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 1acf3da41..153f5eb9d 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 @@ -141,6 +140,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 @@ -165,11 +165,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) {