diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 525fed414791e77d911f8f162e9eb01bd65c3432..142d2291e6dfc1de26f26d7b8501d3f97e7b5527 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -1076,6 +1076,20 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified, } recordInsertText(str); recordEndGroup(); + } else if (key == control('d')) { + int sline = cursorLineOnScreen(); + // FIXME: this should use the "scroll" option, and "count" + moveDown(linesOnScreen() / 2); + moveToFirstNonBlankOnLine(); + scrollToLineInDocument(cursorLineInDocument() - sline); + finishMovement(); + } else if (key == control('u')) { + int sline = cursorLineOnScreen(); + // FIXME: this should use the "scroll" option, and "count" + moveUp(linesOnScreen() / 2); + moveToFirstNonBlankOnLine(); + scrollToLineInDocument(cursorLineInDocument() - sline); + finishMovement(); } else if (key == Key_PageDown || key == control('f')) { moveDown(count() * (linesOnScreen() - 2)); finishMovement();