diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 3603a728bce148787944aa28bd0a8445f65e652f..9f25943705fd5eb431419083a5362fb06874504b 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -1053,7 +1053,12 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified, m_opcount = m_mvcount; m_mvcount.clear(); m_submode = DeleteSubMode; - } else if ((key == 'd' || key == 'x') && m_visualMode == VisualLineMode) { + } else if ((key == 'd' || key == 'x') && m_visualMode == VisualCharMode) { + recordBeginGroup(); + leaveVisualMode(); + m_submode = DeleteSubMode; + finishMovement(); + } else if ((key == 'd' || key == 'x') && m_visualMode == VisualLineMode) { leaveVisualMode(); int beginLine = lineForPosition(m_marks['<']); int endLine = lineForPosition(m_marks['>']);