diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 30637600ef6ab9ffa54a892dc4df72e46bbf7c97..2ad5962a5368b606fb37fb21ffdf68dd32733b11 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -2334,6 +2334,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(const Input &input)
     } else if (input.is('Z')) {
         m_submode = CapitalZSubMode;
     } else if (!m_gflag && input.is('~') && !isVisualMode()) {
+        m_movetype = MoveExclusive;
         if (!atEndOfLine()) {
             beginEditBlock();
             setAnchor();
@@ -2355,6 +2356,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(const Input &input)
         || (m_gflag && input.is('u') && !isVisualMode())
         || (m_gflag && input.is('U') && !isVisualMode())) {
         m_gflag = false;
+        m_movetype = MoveExclusive;
         if (atEndOfLine())
             moveLeft();
         setAnchor();
@@ -2369,6 +2371,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(const Input &input)
         || (m_gflag && input.is('u') && isVisualMode())
         || (m_gflag && input.is('U') && isVisualMode())) {
         m_gflag = false;
+        m_movetype = MoveExclusive;
         if (isVisualLineMode())
             m_rangemode = RangeLineMode;
         else if (isVisualBlockMode())