diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 1bb564abe42..900f44568bf 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -502,6 +502,19 @@ void FakeVimPlugin::test_vim_search() data.setText("abc" N "def" N "ab" X "c" N "ghi abc jkl"); KEYS("#", X "abc" N "def" N "abc" N "ghi abc jkl"); + // search with g* and g# + data.doCommand("set nows"); + data.setText("bc" N "abc" N "abcd" N "bc" N "b"); + KEYS("g*", "bc" N "a" X "bc" N "abcd" N "bc" N "b"); + KEYS("n", "bc" N "abc" N "a" X "bcd" N "bc" N "b"); + KEYS("n", "bc" N "abc" N "abcd" N X "bc" N "b"); + KEYS("n", "bc" N "abc" N "abcd" N X "bc" N "b"); + KEYS("g#", "bc" N "abc" N "a" X "bcd" N "bc" N "b"); + KEYS("n", "bc" N "a" X "bc" N "abcd" N "bc" N "b"); + KEYS("N", "bc" N "abc" N "a" X "bcd" N "bc" N "b"); + KEYS("3n", "bc" N "abc" N "a" X "bcd" N "bc" N "b"); + KEYS("2n", X "bc" N "abc" N "abcd" N "bc" N "b"); + /* QTCREATORBUG-7251 */ data.setText("abc abc abc abc"); KEYS("$?abc", "abc abc abc " X "abc"); diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 852a07e7e4f..d1831c920b9 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -2774,7 +2774,10 @@ EventResult FakeVimHandler::Private::handleCommandMode1(const Input &input) QString needle; QTextCursor tc = cursor(); tc.select(QTextCursor::WordUnderCursor); - needle = "\\<" + tc.selection().toPlainText() + "\\>"; + if (m_gflag) + needle = tc.selection().toPlainText(); + else + needle = "\\<" + tc.selection().toPlainText() + "\\>"; setAnchorAndPosition(tc.position(), tc.anchor()); g.searchBuffer.historyPush(needle); m_lastSearch = needle;