diff --git a/src/plugins/fakevim/handler.cpp b/src/plugins/fakevim/handler.cpp index b756c3534491481f883dbaca0612c3c73b63ff06..b53a97e6c37cd33e68b07a63fe18184888febb32 100644 --- a/src/plugins/fakevim/handler.cpp +++ b/src/plugins/fakevim/handler.cpp @@ -789,7 +789,7 @@ bool FakeVimHandler::Private::handleCommandMode(int key, const QString &text) } else if (key == Key_PageUp || key == control('b')) { m_tc.movePosition(Up, KeepAnchor, count() * (linesOnScreen() - 2)); finishMovement(); - } else if (key == Key_Backspace) { + } else if (key == Key_Backspace || key == control('h')) { m_tc.deletePreviousChar(); } else if (key == Key_Delete) { m_tc.deleteChar(); @@ -831,7 +831,7 @@ bool FakeVimHandler::Private::handleInsertMode(int key, const QString &text) } else if (key == Key_Return) { m_tc.insertBlock(); m_lastInsertion += "\n"; - } else if (key == Key_Backspace) { + } else if (key == Key_Backspace || key == control('h')) { m_tc.deletePreviousChar(); m_lastInsertion = m_lastInsertion.left(m_lastInsertion.size() - 1); } else if (key == Key_Delete) { @@ -840,13 +840,9 @@ bool FakeVimHandler::Private::handleInsertMode(int key, const QString &text) } else if (key == Key_PageDown || key == control('f')) { m_tc.movePosition(Down, KeepAnchor, count() * (linesOnScreen() - 2)); m_lastInsertion.clear(); - } else if (key == Key_Backspace) { - finishMovement(); } else if (key == Key_PageUp || key == control('b')) { m_tc.movePosition(Up, KeepAnchor, count() * (linesOnScreen() - 2)); m_lastInsertion.clear(); - } else if (key == Key_Backspace) { - finishMovement(); } else if (!text.isEmpty()) { m_lastInsertion.append(text); m_tc.insertText(text);