diff --git a/src/plugins/fakevim/handler.cpp b/src/plugins/fakevim/handler.cpp index 77d691ca8b18d70c3339d45dc00ffc3a87cd7f9a..a50105fdf2d33f943b89853570fffa915348b486 100644 --- a/src/plugins/fakevim/handler.cpp +++ b/src/plugins/fakevim/handler.cpp @@ -350,7 +350,7 @@ void FakeVimHandler::Private::handleCommandMode(int key, const QString &text) finishMovement(); } else if (key >= '0' && key <= '9') { if (key == '0' && m_mvcount.isEmpty()) { - m_tc.movePosition(StartOfLine, KeepAnchor); + moveToFirstNonBlankOnLine(); finishMovement(); } else { m_mvcount.append(QChar(key)); @@ -450,7 +450,10 @@ void FakeVimHandler::Private::handleCommandMode(int key, const QString &text) m_lastInsertion.clear(); } else if (key == 'I') { m_mode = InsertMode; - moveToFirstNonBlankOnLine(); + if (m_gflag) + m_tc.movePosition(StartOfLine, KeepAnchor); + else + moveToFirstNonBlankOnLine(); m_tc.clearSelection(); m_tc.beginEditBlock(); m_lastInsertion.clear();