diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index f6e9d7597087933bfe46bd44ca885dbac9c98f62..ceafa52354a34e137b4eded4620a51fd748980b6 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -634,7 +634,7 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified, finishMovement("y"); } else if (m_submode == ReplaceSubMode) { if (atEol()) - moveLeft(KeepAnchor); + moveLeft(); else m_tc.deleteChar(); recordInsertText(text); @@ -1019,7 +1019,9 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified, moveUp(count() * (linesOnScreen() - 2)); finishMovement(); } else if (key == Key_Delete) { - m_tc.deleteChar(); + setAnchor(); + moveRight(qMin(1, rightDist())); + recordRemoveSelectedText(); } else if (key == Key_Escape) { if (m_visualMode != NoVisualMode) leaveVisualMode();