forked from qt-creator/qt-creator
fakevim: yanking/deleting/changing by line would act on one line to few
This commit is contained in:
@@ -695,7 +695,12 @@ bool FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
|
|||||||
else
|
else
|
||||||
moveToFirstNonBlankOnLine();
|
moveToFirstNonBlankOnLine();
|
||||||
} else if (key == 'j' || key == Key_Down) {
|
} else if (key == 'j' || key == Key_Down) {
|
||||||
|
if (m_submode == NoSubMode || m_submode == ZSubMode || m_submode == RegisterSubMode) {
|
||||||
m_tc.movePosition(Down, KeepAnchor, count());
|
m_tc.movePosition(Down, KeepAnchor, count());
|
||||||
|
} else {
|
||||||
|
m_tc.movePosition(StartOfLine, MoveAnchor);
|
||||||
|
m_tc.movePosition(Down, KeepAnchor, count()+1);
|
||||||
|
}
|
||||||
finishMovement();
|
finishMovement();
|
||||||
} else if (key == 'J') {
|
} else if (key == 'J') {
|
||||||
EditOperation op;
|
EditOperation op;
|
||||||
@@ -710,7 +715,13 @@ bool FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
|
|||||||
m_tc.movePosition(Left, MoveAnchor, 1);
|
m_tc.movePosition(Left, MoveAnchor, 1);
|
||||||
}
|
}
|
||||||
} else if (key == 'k' || key == Key_Up) {
|
} else if (key == 'k' || key == Key_Up) {
|
||||||
|
if (m_submode == NoSubMode || m_submode == ZSubMode || m_submode == RegisterSubMode) {
|
||||||
m_tc.movePosition(Up, KeepAnchor, count());
|
m_tc.movePosition(Up, KeepAnchor, count());
|
||||||
|
} else {
|
||||||
|
m_tc.movePosition(StartOfLine, MoveAnchor);
|
||||||
|
m_tc.movePosition(Down, MoveAnchor);
|
||||||
|
m_tc.movePosition(Up, KeepAnchor, count()+1);
|
||||||
|
}
|
||||||
finishMovement();
|
finishMovement();
|
||||||
} else if (key == 'l' || key == Key_Right) {
|
} else if (key == 'l' || key == Key_Right) {
|
||||||
m_tc.movePosition(Right, KeepAnchor, qMin(count(), rightDist()));
|
m_tc.movePosition(Right, KeepAnchor, qMin(count(), rightDist()));
|
||||||
|
|||||||
Reference in New Issue
Block a user