diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index a734b46a46cd4598e702bbbb45be5fe2e67b841e..06239d4089f422d53c4e1eda442fd3a7bfd81876 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -650,6 +650,9 @@ EventResult FakeVimHandler::Private::handleEvent(QKeyEvent *ev) Range range(m_oldPosition, m_tc.position()); m_lastInsertion.append(text(range)); } + } else if (!isVisualMode()) { + if (atEndOfLine()) + moveLeft(); } } @@ -3366,6 +3369,8 @@ void FakeVimHandler::Private::undo() if (m_undoCursorPosition.contains(rev)) m_tc.setPosition(m_undoCursorPosition[rev]); + if (atEndOfLine()) + moveLeft(); } void FakeVimHandler::Private::redo() @@ -3398,6 +3403,8 @@ void FakeVimHandler::Private::enterCommandMode() { EDITOR(setCursorWidth(m_cursorWidth)); EDITOR(setOverwriteMode(true)); + if (atEndOfLine()) + moveLeft(); m_mode = CommandMode; }