diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 3f6bb103c59a0d28e84f0de5d5287201f7acab3a..784047a1198ac9c137d94a2a160d7a5f122f571c 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -942,6 +942,17 @@ int FakeVimHandler::Private::readLineCode(QString &cmd) return cursorLineInDocument() + 1; if (c == '$') return linesInDocument(); + if (c == '\'' && !cmd.isEmpty()) { + int mark = m_marks.value(cmd.at(0).unicode()); + if (!mark) { + showMessage(tr("E20: Mark '%1' not set").arg(cmd.at(0))); + return -1; + } + cmd = cmd.mid(1); + QTextCursor tc = m_tc; + tc.setPosition(mark); + return tc.block().blockNumber() + 1; + } if (c == '-') { int n = readLineCode(cmd); return cursorLineInDocument() + 1 - (n == -1 ? 1 : n);