diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index e84c6f61acd6544ae7f0b8e4773532389bad9960..6f2f03ebc524653374d2356b6be2d43de48ec6fd 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -2657,6 +2657,7 @@ void FakeVimHandler::Private::moveToFirstNonBlankOnLine()
 
 void FakeVimHandler::Private::indentSelectedText(QChar typedChar)
 {
+    setTargetColumn();
     int beginLine = qMin(lineForPosition(position()), lineForPosition(anchor()));
     int endLine = qMax(lineForPosition(position()), lineForPosition(anchor()));
 
@@ -2665,7 +2666,8 @@ void FakeVimHandler::Private::indentSelectedText(QChar typedChar)
     indentText(range, typedChar);
 
     setPosition(firstPositionInLine(beginLine));
-    moveToFirstNonBlankOnLine();
+    moveToTargetColumn();
+    handleStartOfLine();
     setTargetColumn();
     setDotCommand("%1==", endLine - beginLine + 1);
 }
@@ -2693,6 +2695,7 @@ bool FakeVimHandler::Private::isElectricCharacter(QChar c) const
 
 void FakeVimHandler::Private::shiftRegionRight(int repeat)
 {
+    setTargetColumn();
     int beginLine = lineForPosition(anchor());
     int endLine = lineForPosition(position());
     if (beginLine > endLine)
@@ -2709,13 +2712,15 @@ void FakeVimHandler::Private::shiftRegionRight(int repeat)
     endEditBlock();
 
     setPosition(firstPos);
-    moveToFirstNonBlankOnLine();
+    moveToTargetColumn();
+    handleStartOfLine();
     setTargetColumn();
     setDotCommand("%1>>", endLine - beginLine + 1);
 }
 
 void FakeVimHandler::Private::shiftRegionLeft(int repeat)
 {
+    setTargetColumn();
     int beginLine = lineForPosition(anchor());
     int endLine = lineForPosition(position());
     if (beginLine > endLine)
@@ -2744,7 +2749,8 @@ void FakeVimHandler::Private::shiftRegionLeft(int repeat)
     endEditBlock();
 
     setPosition(firstPos);
-    moveToFirstNonBlankOnLine();
+    moveToTargetColumn();
+    handleStartOfLine();
     setTargetColumn();
     setDotCommand("%1<<", endLine - beginLine + 1);
 }