From d5f3c585ba8b3ecc79b6ee710b3aa8a9a093f27d Mon Sep 17 00:00:00 2001 From: Martin Aumueller Date: Mon, 16 Feb 2009 22:43:19 +0100 Subject: [PATCH] fakevim: also repeat insertion with '.' --- src/plugins/fakevim/fakevimhandler.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index b3aaea7cd2a..a14072374be 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -882,9 +882,13 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified, updateMiniBuffer(); } else if (key == '.') { qDebug() << "REPEATING" << m_dotCommand; + QString savedCommand = m_dotCommand; + m_dotCommand.clear(); for (int i = count(); --i >= 0; ) - foreach (QChar c, m_dotCommand) + foreach (QChar c, savedCommand) handleKey(c.unicode(), c.unicode(), QString(c)); + enterCommandMode(); + m_dotCommand = savedCommand; } else if (key == '=') { m_submode = IndentSubMode; } else if (key == '%') { @@ -1269,6 +1273,7 @@ bool FakeVimHandler::Private::handleInsertMode(int key, int, const QString &text recordEndGroup(); //qDebug() << "UNDO: " << m_undoStack; moveLeft(qMin(1, leftDist())); + m_dotCommand += m_lastInsertion; enterCommandMode(); } else if (key == Key_Left) { moveLeft(count());