diff options
-rw-r--r-- | src/plugins/fakevim/fakevim_test.cpp | 2 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimhandler.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 0508de1966..ad7b013277 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -748,6 +748,8 @@ void FakeVimPlugin::test_vim_insert() KEYS("i<c-o>0x", "abc" N "x" X "def"); data.setText("abc" N "de" X "f"); KEYS("i<c-o>ggx", "x" X "abc" N "def"); + data.setText("abc" N "def" N "ghi"); + KEYS("i<c-o>vjlolx", "a" X "f" N "ghi"); // <INSERT> to toggle between insert and replace mode data.setText("abc" N "def"); diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index a20274ea2f..424171d670 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -3492,7 +3492,9 @@ void FakeVimHandler::Private::finishMovement(const QString &dotCommandMovement) void FakeVimHandler::Private::leaveCurrentMode() { - if (g.returnToMode == CommandMode) + if (isVisualMode()) + enterCommandMode(g.returnToMode); + else if (g.returnToMode == CommandMode) enterCommandMode(); else if (g.returnToMode == InsertMode) enterInsertMode(); |