Fixes: fakevim: more 'z' commands

This commit is contained in:
hjk
2009-01-27 12:44:42 +01:00
parent ccfbdf5b1b
commit 21f15207fb

View File

@@ -688,17 +688,27 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
indentRegion(m_tc.block(), m_tc.block().next());
finishMovement();
} else if (m_submode == ZSubMode) {
if (key == Key_Return) {
// cursor line to top of window, cursor on first non-blank
//qDebug() << "Z_MODE " << cursorLineInDocument() << linesOnScreen();
if (key == Key_Return || key == 't') { // cursor line to top of window
if (!m_mvcount.isEmpty())
m_tc.setPosition(positionForLine(count()));
scrollToLineInDocument(cursorLineInDocument());
moveToFirstNonBlankOnLine();
if (key == Key_Return)
moveToFirstNonBlankOnLine();
finishMovement();
} else if (key == '.') { // center cursor line
} else if (key == '.' || key == 'z') { // cursor line to center of window
if (!m_mvcount.isEmpty())
m_tc.setPosition(positionForLine(count()));
scrollToLineInDocument(cursorLineInDocument() - linesOnScreen() / 2);
moveToFirstNonBlankOnLine();
if (key == '.')
moveToFirstNonBlankOnLine();
finishMovement();
} else if (key == 'z') { // center cursor line
scrollToLineInDocument(cursorLineInDocument() - linesOnScreen() / 2);
} else if (key == '-' || key == 'b') { // cursor line to bottom of window
if (!m_mvcount.isEmpty())
m_tc.setPosition(positionForLine(count()));
scrollToLineInDocument(cursorLineInDocument() - linesOnScreen() - 1);
if (key == '-')
moveToFirstNonBlankOnLine();
finishMovement();
} else {
qDebug() << "IGNORED Z_MODE " << key << text;