diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 49e6b047170..05f64770c33 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -1349,6 +1349,11 @@ void FakeVimPlugin::test_vim_copy_paste() KEYS("yj", "ab" X "c" N "def"); data.setText("abc" N "de" X "f"); KEYS("yk", "ab" X "c" N "def"); + + // copy empty line + data.setText(X "a" N "" N "b"); + KEYS("Vjy", X "a" N "" N "b"); + KEYS("p", "a" N X "a" N "" N "" N "b"); } void FakeVimPlugin::test_vim_undo_redo() diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 508ce4a65bc..832bfcfdb3f 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -3692,6 +3692,7 @@ bool FakeVimHandler::Private::handleNoSubMode(const Input &input) || (input.is('Y') && isVisualLineMode()) || (input.is('Y') && isVisualCharMode())) { m_rangemode = RangeLineMode; + m_movetype = MoveLineWise; m_submode = YankSubMode; finishMovement(); } else if ((input.is('y') || input.is('Y')) && isVisualBlockMode()) {