fakevim: fix undo of 'J'

This commit is contained in:
hjk
2009-11-19 08:36:21 +01:00
parent bfb01f4162
commit aa3b274a93
2 changed files with 27 additions and 7 deletions

View File

@@ -1178,7 +1178,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
m_passing = !m_passing;
updateMiniBuffer();
} else if (key == '.') {
//qDebug() << "REPEATING" << quoteUnprintable(m_dotCommand);
//qDebug() << "REPEATING" << quoteUnprintable(m_dotCommand) << count();
QString savedCommand = m_dotCommand;
m_dotCommand.clear();
replay(savedCommand, count());
@@ -1366,6 +1366,8 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
}
finishMovement("j");
} else if (key == 'J') {
setDotCommand("%1J", count());
beginEditBlock();
if (m_submode == NoSubMode) {
for (int i = qMax(count(), 2) - 1; --i >= 0; ) {
moveToEndOfLine();
@@ -1380,6 +1382,8 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
if (!m_gflag)
moveLeft();
}
endEditBlock();
finishMovement();
} else if (key == 'k' || key == Key_Up) {
if (m_submode == NoSubMode || m_submode == ZSubMode
|| m_submode == CapitalZSubMode || m_submode == RegisterSubMode) {