diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 1ba8e7af0a9e5c9fe0de0b2a716ef41d6d0a5b1e..e477f1f577d491e8dd5393acf6350d015ba5e23d 100755
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1208,7 +1208,12 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         finishMovement();
     } else if (key == '-') {
         moveToStartOfLine();
-        moveUp();
+        moveUp(count());
+        moveToFirstNonBlankOnLine();
+        finishMovement();
+    } else if (key == '+') {
+        moveToStartOfLine();
+        moveDown(count());
         moveToFirstNonBlankOnLine();
         finishMovement();
     } else if (key == Key_Home) {