diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 81eee1973f0..7e5a43a01e9 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -2526,6 +2526,15 @@ void FakeVimPlugin::test_vim_copy_paste() KEYS("gg\"yP", X "def" N "abc" N "abc" N "def" N "ghi"); KEYS("\"xP", X "abc" N "def" N "abc" N "abc" N "def" N "ghi"); + // QTCREATORBUG-25281 + data.setText(X "abc" N "def" N "ghi"); + KEYS("\"xyy", X "abc" N "def" N "ghi"); + KEYS("\"xp", "abc" N X "abc" N "def" N "ghi"); + KEYS("j", "abc" N "abc" N X "def" N "ghi"); + KEYS("yy", "abc" N "abc" N X "def" N "ghi"); + KEYS("\"xp", "abc" N "abc" N "def" N X "abc" N "ghi"); + KEYS(".", "abc" N "abc" N "def" N "abc" N X "abc" N "ghi"); + // delete to black hole register data.setText("aaa bbb ccc"); KEYS("yiww\"_diwP", "aaa aaa ccc"); diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index e4147e55806..b3b547c00e6 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -4520,6 +4520,8 @@ bool FakeVimHandler::Private::handleNoSubMode(const Input &input) } else if (input.isControl('o')) { jump(-count()); } else if (input.is('p') || input.is('P') || input.isShift(Qt::Key_Insert)) { + dotCommand = QString("\"%1%2p").arg(QChar(m_register)).arg(count()); + pasteText(!input.is('P')); setTargetColumn(); finishMovement();