From b324a7b789d239eb7855ac04dc763a35a4423e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Aum=C3=BCller?= <aumuell@reserv.at> Date: Thu, 21 Jan 2010 17:38:25 +0100 Subject: [PATCH] fakevim: implement 'o'/'O' in visual mode for swapping anchor and position Merge-request: 99 Reviewed-by: hjk <qtc-committer@nokia.com> --- src/plugins/fakevim/fakevimhandler.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 3a76b7d0050..563c06354c4 100755 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -802,7 +802,7 @@ void FakeVimHandler::Private::finishMovement(const QString &dotCommand) return; } - if (isNoVisualMode()) + if (isVisualMode()) m_marks['>'] = m_tc.position(); if (m_submode == ChangeSubMode) { @@ -1562,6 +1562,12 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified, } else search(lastSearchString(), m_lastSearchForward); recordJump(); + } else if (isVisualMode() && (key == 'o' || key == 'O')) { + int pos = position(); + setPosition(anchor()); + m_anchor = pos; + std::swap(m_marks['<'], m_marks['>']); + updateSelection(); } else if (key == 'o' || key == 'O') { beginEditBlock(); setDotCommand("%1o", count()); -- GitLab