diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 5fcdd379182..ce6526ac4ac 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -811,6 +811,18 @@ void FakeVimPlugin::test_vim_change_replace() data.setText(" abc" N " def" N " gh" X "i" N " jkl"); KEYS("ck123", " abc" N " 12" X "3" N " jkl"); INTEGRITY(false); + + data.setText("abc" N X "def"); + KEYS("sXYZ", "abc" N "XYZ" X "ef"); + INTEGRITY(false); + + data.setText("abc" N X "def"); + KEYS("2sXYZ", "abc" N "XY" X "Zf"); + INTEGRITY(false); + + data.setText("abc" N X "def"); + KEYS("6sXYZ", "abc" N "XY" X "Z"); + INTEGRITY(false); } void FakeVimPlugin::test_vim_block_selection() diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 0da53b67afe..b0436fc0965 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -3534,6 +3534,7 @@ bool FakeVimHandler::Private::handleNoSubMode(const Input &input) moveRight(qMin(count(), rightDist())); setDotCommand("%1s", count()); m_submode = ChangeSubMode; + m_movetype = MoveExclusive; finishMovement(); } else if (input.is('S')) { m_movetype = MoveLineWise;